2011-04-06 3 views
2

Je crée une zone "Contenu associé" sur un site Web et utilise la gemme acts-as-taggable-on pour cela. Puis dans un article, il tire dans le contenu connexe par des mots-clés correspond. Le code suivant fonctionne bien avec find_related_keywords (NOTE: Mettre toute la logique dans la vue de simplifier et de faire ce travail pour l'instant, sera factoriser appropriée plus tard)Rails Agit comme taggable sur: Recherche de mots-clés associés sur plusieurs types de taggable

<% for related in @article.find_related_keywords.limit(5) %> 
    # Markup for related item in here  
<% end %> 

Cependant, cela ne renvoie leur contenu dans le même type de modèle , dans ce cas, l'article. J'ai aussi d'autres modèles/tables comme Reviews, Interviews, etc. qui ont aussi un champ taggable: keywords et qui aimeraient ceux inclus dans les résultats find_related_keywords. Y a-t-il un moyen de faire cela?

Répondre

1

Avez-vous essayé:

Review.tagged_with(@article.category_list, :any => true).limit(5) 

Interview.tagged_with(@article.category_list, :any => true).limit(5) 
+0

Désolé pour la réponse tardive, je n'ai pas encore retrouvé cette partie de mon projet. Quoi qu'il en soit, oui, j'ai pris ce qui précède et les a ajoutés ensemble via Ruby (et limité tous les 20 résultats en tant que tels), et il accomplit maintenant ce que je veux faire. Seul bummer est que c'est quatre requêtes contre un, mais c'est la nature de la façon dont les tables sont, plus je peux utiliser la mise en cache pour compenser cela. Merci! – Shannon

0

Après avoir étudié comment Agir comme Taggable On fonctionne - combiné avec le manque de réponse - j'ai conclu qu'il n'est pas possible de le faire et qu'il est vraiment destiné à un seul type d'objet.

Cependant, j'ai considéré la possibilité alternative d'utiliser des moteurs de recherche à mon avantage. Mon projet a actuellement Sunspot/Solr, je pense maintenant à utiliser le champ de mot-clé pour rechercher automatiquement contre les mots-clés, et en théorie, cela devrait bien fonctionner en retournant les cinq derniers résultats ou quoi que ce soit d'un objet/table indexé par Solr.

+0

J'ai besoin les mêmes fonctionnalités. Actuellement est possible grâce à mon moteur de Thinking-Sphinx, mais semble un peu sdirty. J'ai ouvert un numéro sur le repo de github: https://github.com/mbleigh/acts-as-taggable-on/issues/146 –

Questions connexes