我有一个带有 Thinking Sphinx 的网站,用于返回产品名称、标签、描述等的搜索结果。工作正常。
但是,当我从 TS 获取一组搜索结果时,尝试从 Acts_as_Taggable_On 获取 tag_counts 时出现“无方法”错误。我发现该错误扩展到了一系列情况,我可能会在标记项目的集合上调用 tag_counts 方法。
这些工作:
Owner.first.products.all.tag_counts
Product.where(:color => 'white').tag_counts
Product.first.tag_counts
但这些不会:
Product.all.tag_counts
Product.search('white').to_a.tag_counts
(后者调用一个 Thinking Sphinx 搜索,返回一个 TS 搜索集合。)
他们返回此错误的一些变体:
NoMethodError: undefined method `tag_counts' for #<Array:0x00000101585280>
我有一个模糊的想法,这是某种代理方法的事情,它在前一个调用而不是后者上得到了正确的关联。
有人对我如何确保标记对象数组具有可用的 tag_counts 方法有任何建议吗?