2015-11-19 2 views
0

Dans mon application Rails, j'ai un modèle appelé Projets et les projets ont man Spins. J'utilise la gemme acts_as_taggable_on pour permettre aux utilisateurs d'ajouter des balises à leurs tours. Je voudrais pouvoir filtrer les projets par tags, donc si un projet contient un spin qui contient le tag particulier, je voudrais retourner ce projet dans les résultats de recherche.acts_as_taggable_on trouver des balises du modèle associé

Je sais que je peux rechercher des vrilles qui ont des étiquettes particulières avec les éléments suivants:

Spin.tagged_with("LEGO") 

Comment puis-je faire une recherche associée, quelque chose comme

Project.find(1).spins.where(:tagged_with => "LEGO") 

(cela ne fonctionne pas car il n'y a pas d'attribut tagged_with de Spins - acts_as_taggable_on ajoute une table séparée pour les tags).

Répondre

1
Project.joins(:spins).where('spins.id IN (?)', Spin.tagged_with("LEGO").select(:id))