在Rails 3.2中,关联选项counter_cache
是否链接到其他选项,如counter_sql
或conditions
?
例如,如果我有这样一个关联:
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
由于您提到的原因,我最终很少使用计数器缓存,而是总是创建我自己的缓存。响应on_save和on_create回调,并调用一个方法来更新计数。
如果您要创建自己的,请使用@instance.update_column(:column, value)
。这将确保回调不会被递归调用。