我正在尝试获取Rails计数器缓存功能,但无法完全掌握它。
假设我们有3种型号
A、B、C
A属于B或C,这取决于字段键\类型和键\ ID。键\类型指示A属于B还是C,因此如果键\类型=“B”,则记录属于B,否则记录属于C。
在我的A.RB模型中,我定义了以下关联:
belongs_to :b, :counter_cache => true, :foreign_key => "key_id"
belongs_to :c, :counter_cache => true, :foreign_key => "key_id"
和
在B和C模型文件中
has_many :as , :conditions => {:key_type => "B"}
has_many :as , :conditions => {:key_type => "C"}
B和C模型都有一列作为\计数
问题是,每次创建A的对象时,模型B和C中的计数都会增加。
感谢您的帮助。最初我认为这可能有效:
belongs_to :b, :counter_cache => true, :foreign_key => "key_id", :conditions => {:key_type => "B"}
belongs_to :c, :counter_cache => true, :foreign_key => "key_id", :conditions => {:key_type => "C"}
但这没有帮助。
谢谢