2010-01-01 10 views
0

Je viens d'installer le plugin acts_as_taggable_on et je suis en train de faireRails acts_as_taggable_on plusieurs tables

@products = Product.find (: tous,: include => [: points,: tags],: conditions => ' ... ',: tags =>' tag1, tag2 ')

Comme vous pouvez le voir, je voudrais utiliser la méthode find() avec 2 autres modèles (Product, Point, Tag). Je voudrais utiliser tous les 3 modèles dans un attribut: condition => {}.

Est-ce que c'est possible? Que devrais-je faire?

Répondre

0

Pourquoi ne pas simplement fusionner les résultats?

@results = [] 
%W(Product Point Tag).each do |model| 
    @results += model.constantize.find(:all, :include => [:points, :tags], :conditions => '...', :tags => 'tag1, tag2') 
end 
0

Je pense que vous demandez comment utiliser plusieurs modèles dans un hash de conditions pour trouver. Quelque chose comme ça devrait fonctionner.

@products = Product.find(:all, :include => [:points, :tags], :conditions => {:points=>{:value=>5}, :tags=>['tag1','tag2']}) 
+0

: tags => ne fonctionne pas ... le plugin ne supporte pas cela, donc je suis à la recherche d'une solution/solution de contournement. – xpepermint

+0

Jetez un oeil à cet article de blog http://juixe.com/techknow/index.php/2006/07/18/acts-as-taggable-conditions-hack/ il pourrait vous donner quelques idées. Je ne pense pas que vous puissiez utiliser les conditions de hachage pour ce que vous essayez de faire, c'est un peu trop compliqué. –