2010-01-13 2 views
1

J'ai donc deux requêtes distinctes:Comment puis-je combiner des résultats d'enregistrement dans Rails?

tagged_items = Item.tagged_with(params[:s], :on => :tags) 
searched_items = Item.find(:all, :conditions => ["MATCH(title) AGAINST (? IN BOOLEAN MODE)", "*#{params[:s]}*"]) 

Le premier tagged_items utilise le plug-in acts_as_taggable_on pour trouver tous les articles étiquetés avec XYZ.

La seconde, searched_items, est utilisée pour rechercher le terme recherché dans la table items. Alors, comment pourrais-je combiner (et éviter les doublons) les résultats de ces deux?

Répondre

1
items = (tagged_items + searched_items).unique 

Mais ce serait beaucoup mieux si vous pouviez les chercher avec une seule requête.

0

Cette approche ...

@items = tagged_items | searched_items 

... serait plus logique si vous cherchez à utiliser les résultats de ces requêtes dans une vue, au lieu de travailler avec un tableau et accomplit également la déduplication.

Questions connexes