J'ai un site avec Thinking Sphinx mis en place pour renvoyer les résultats de recherche pour les noms de produits, tags, descriptions, etc. Fonctionne bien.Rails: Génération de balises Acts_as_Taggable_On nombre de balises à partir de la collection d'objets balisés
Cependant, lorsque j'obtiens un groupe de résultats de recherche de TS, j'obtiens une erreur "no method" lorsque j'essaie d'obtenir tag_counts à partir de Acts_as_Taggable_On. J'ai constaté que l'erreur s'étend à une série de situations où je pourrais appeler la méthode tag_counts sur une collection d'éléments étiquetés.
Ces travaux:
Owner.first.products.all.tag_counts
Product.where(:color => 'white').tag_counts
Product.first.tag_counts
Mais ceux-ci ne le font pas:
Product.all.tag_counts
Product.search('white').to_a.tag_counts
(. Ce dernier appelle un Thinking recherche Sphinx qui retourne une collection de recherche TS)
Ils reviennent avec une variante de cette erreur:
NoMethodError: undefined method `tag_counts' for #<Array:0x00000101585280>
J'ai une idée vague c'est une sorte de méthode de proxy où il est associé correctement sur les appels précédents, mais pas le dernier.
Quelqu'un at-il des suggestions sur la façon dont je peux m'assurer qu'un tableau d'objets étiquetés a la méthode tag_counts disponible?
Ok, mais que se passe-t-il si j'essaie de l'exécuter sur le tableau de résultats renvoyés par Thinking Sphinx lorsque j'appelle Product.search ('foo'), ou tout autre tableau arbitraire de produits? – tomkarlo
Product.search ('white'). Tag_counts devrait fonctionner correctement s'il existe une méthode de classe appelée tag_counts sur la classe de produit. –