undefined方法'tag_count'使用acts_as_taggable_on类固醇

时间:2009-11-16 06:58:45

标签: ruby-on-rails acts-as-taggable

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

我也有一个'主题'模型。因此,主语和问题之间的关系是主语有很多问题,问题属于主语。

所以当我打电话给@subject.questions.tag_counts时,它运作正常。但是我说我打电话 @subject.free_questions.tag_counts,其中free_questions是我定义的方法,它为tag_counts提供了一个“undefined_method #<Array>。我基本上想找到子集的所有标记问题。

有人可以建议解决方法吗?

1 个答案:

答案 0 :(得分:3)

free_questions实现为named_scope可能会有所帮助,因此您可以在其上调用关联方法。

类似的东西:

class Question < ActiveRecord::Base
  named_scope :free, :conditions => {:free => true} # conditions that make a question 'free'
end

然后你可以:

@subject.questions.free

我怀疑这可行。 (对acts_as_taggable

没有太多经验
@subject.questions.free.tag_counts

当您使用named_scope(而不是您定义的模型方法)时,您将获得一个看起来像Array的行为的代理对象,但允许您链接ActiveRecord关联方法到它上面。任何适用于@subject.questions的方法都可以调用@subject.questions.free