2010-05-04 9 views
1

Dans un système de blog sur lequel je travaille, je veux utiliser des balises comme mécanisme pour décider où un message particulier apparaît. J'utilise acts_as_taggable_on pour configurer deux contextes, le contexte normal: tags, puis le contexte: public.Étiquetage de Rails en utilisant Acts_As_Taggable_On: Recherche de toutes les balises dans un contexte

J'utilise un modèle de compte pour marquer le modèle post comme ceci:

account.tag(post, :with => "cat1, cat2", :on => :audience) 

Le problème que je vais avoir récupère toutes les balises dans un contexte particulier. Je suis en mesure d'obtenir toutes les balises comme ceci:

account.owned_tags # => "cat1, cat2, tag1", where tag1 came from the normal tag context 

Mais ce que je voudrais faire est d'obtenir que les balises spécifiques dans un contexte, comme celui-ci:

acount.owned_tags_on :audience 

Toutes les suggestions? Merci!

Répondre

1

owned_tags est une association normale ActiveRecord:

has_many :owned_tags, :through => :owned_taggings, :source => :tag, :uniq => true 

Vous pouvez effectuer find avec des conditions sur et sélectionnez les balises dont vous avez besoin:

account.owned_tags.all(:conditions => ["context = ?", "audience"]) 
+0

Sweet! C'est parfait. Merci! –

Questions connexes