首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用acts_as_taggable_on_steroids undefined_method 'tag_count‘

使用acts_as_taggable_on_steroids undefined_method 'tag_count‘
EN

Stack Overflow用户
提问于 2009-11-16 14:58:45
回答 1查看 350关注 0票数 1

我正在使用acts_as_taggable为我的应用程序创建一个标签云。我有一个使用acts_as_taggable插件的模型“问题”。我基本上是想过滤问题模型的标签。

我也有一个“主题”模型。因此,主体和问题之间的关系是,一个主体有许多问题,而一个问题属于一个主体。

因此,当我调用@subject.questions.tag_counts时,它工作得很好。但是假设我调用@subject.free_questions.tag_counts,其中free_questions是我定义的一个方法,它给我一个"undefined_method tag_counts for #<Array>“,我基本上是想找出问题子集的所有标签。

有没有人能建议一种变通办法?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-11-16 15:05:29

free_questions实现为named_scope可能会有所帮助,这样您就可以在它上面调用关联方法。

类似于:

代码语言:javascript
复制
class Question < ActiveRecord::Base
  named_scope :free, :conditions => {:free => true} # conditions that make a question 'free'
end

然后,您可以:

代码语言:javascript
复制
@subject.questions.free

我怀疑这也可能是可行的。(没有太多使用acts_as_taggable的经验)

代码语言:javascript
复制
@subject.questions.free.tag_counts

当您使用named_scope (而不是您定义的模型方法)时,您将得到一个外观和行为都与Array相似的代理对象,但它允许您将ActiveRecord关联方法链接到它上。任何在@subject.questions上工作的方法都应该能够在@subject.questions.free上调用。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1740522

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档