0

Rails 3.2 では、関連付けオプションはやcounter_cacheなどの他のオプションにリンクされていますcounter_sqlconditions?

たとえば、次のような関連付けがあるとします。

class User
  has_many :items, :through => :orders
  has_many :active_items, :through => :orders
           :conditions => 'active = true', :source => :item

class Order
  belongs_to :users, :counter_cache => :active_items_count
  belongs_to :items

class Item
  has_many :users, :through => :orders

カウンター キャッシュはそのアクティブな状態を尊重しますか? finder_sql(非アクティブなアイテムはカウントされないことを意味します) /を使用する場合はどうなりますか?counter_sql

4

1 に答える 1

0

あなたが言及した理由から、カウンターキャッシュを使用することはめったになく、代わりに常に独自のキャッシュを作成します。on_save および on_create コールバックに反応し、メソッドを呼び出してカウントを更新します。

自分で作成する場合のヒントの 1 つは、 を使用することです@instance.update_column(:column, value)。これにより、コールバックが再帰的に呼び出されないようになります。

于 2013-01-14T18:25:57.157 に答える