我有一個模型,Foo,has_many酒吧。它有一個虛擬屬性current_baz,它返回關聯中最新Bar的baz屬性(如果存在)。我想定義Foo.current_baz =,以便可以說my_foo.update_attributes(:current_baz => 7),特別是當創建新的Foo時,我希望它可以工作。這樣,我可以說如何在父對象具有ID之前在ActiveRecord關聯上構建?
Foo.new(:current_baz => 7, ...)
,它應該做的
self.bars.build(:baz => 7)
。當然,這是行不通的,因爲新的Foo沒有一個id還,因此新的酒吧ISN」 t有效。我知道如何在控制器中解決這個問題,首先創建Foo,然後創建Bar並將它們封裝在一個事務中。但如果可能的話,我真的很想在模型中保留這個邏輯。看來幾乎可以。有沒有人有什麼建議?
完美的感覺,謝謝! – korinthe 2010-07-31 15:13:52