Rails:关系表上的impressionist_count

时间:2013-07-24 01:05:51

标签: ruby-on-rails ruby-on-rails-3 has-many-through

我正在尝试使用impressionist gem来跟踪对关系的访问。我的写法很有效:

@document.publications.each do |publication|
  impressionist(publication)
end

我有has_many, :through这样的关系(在这里简化,但一切正常):

class Document
  has_many :components, :through => :publications
end

我只是遇到了编写查询以根据组件获取相关展示次数的问题。我失败的代码目前看起来像这样:

<% document.components.each do |component| %>
  <%= component.publications.where(:document_id => document.id).impressionist_count %>
<% end %>

我得到一个没有方法的错误:

undefined method 'impressionist_count' for #<ActiveRecord::Relation:blah

我知道我正在编写失败的代码,但我很难找到正确的编写方法。

1 个答案:

答案 0 :(得分:1)

您需要在关联中设置:counter_cache

观看此视频,明确解释http://railscasts.com/episodes/23-counter-cache-column