0

印象派の宝石を使用して、関係の訪問を追跡しようとしています。私の書き込み方法はうまくいきます:

@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

失敗するコードを間違って書いていることはわかっていますが、正しい書き方を見つけるのに苦労しています。

4

1 に答える 1

1

関連付けで :counter_cache を設定する必要があります

このビデオを見てください。明確に説明されていますhttp://railscasts.com/episodes/23-counter-cache-column

于 2013-07-24T01:13:58.010 に答える