我試圖抓住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