2013-07-24 35 views
0

我試圖使用impressionist gem來追蹤關係上的訪問。我寫的方法效果很好:Rails:關係表上的impressionist_count

@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

您需要設置:counter_cache在協會

觀看這部影片,它清楚地解釋http://railscasts.com/episodes/23-counter-cache-column

+0

是啊,這會有助於在一定程度上,但因爲我不能得到計數開始那將是第一個障礙。 –

+1

你真的看過視頻嗎?有一部分關於遷移,解釋如何獲得初始計數 – Benj

+0

啊!有用!謝謝。 –