我正在尝试使用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
我知道我正在编写失败的代码,但我很难找到正确的编写方法。
答案 0 :(得分:1)
您需要在关联中设置:counter_cache
观看此视频,明确解释http://railscasts.com/episodes/23-counter-cache-column