我试图抓住rails计数器缓存功能,但无法完全掌握它。Rails计数器缓存及其实现
比方说,我们有3种型号
A B C
A属于B或C,这取决于现场为key_type和KEY_ID。为key_type告诉A是否属于B或C因此,如果为key_type =“B”,则记录属于否则它属于C.
以我模型a.rb到B,我已经定义以下关联:
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的型号具有列作为as_count
问题在于,每当创建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"}
但这没有帮助。
谢谢
这不应该被标记为“grails”。 – Fletch 2010-12-03 11:32:03