0
之前,我有一個類和汽車類部分,它看起來像下面運行。這兩個類都有一個屬性'價格'。現在Car的價格是所有零件價格的總和。另外,如果零件沒有價格,即如果汽車的一個或多個零件的價格爲零,則汽車的價格設置爲零。鋼軌before_save父對象的回調關聯的子對象保存
Class Car
has_many :parts
before_save :calculate_price
private
def calculate_price
# calculate the price of car by summing all parts prices.
end
end
Class Part
belongs_to :car, inverse_of: parts
end
問題
每當一個部分的價格變化,我想重新計算汽車的價格。現在,爲了這個,我加了before_save回調,但保存了部分對象之前回調運行,當我做self.parts
它加載從數據庫對象的部分,而不是從內存中加載它們的,所以我沒有得到價格的更新值。如何在保存關聯的子對象之後使before_save運行或從內存中加載子對象?
沒有測試 - 但嘗試改變協會** belongs_to的:汽車,inverse_of:零件,摸:真**。 [更多信息](http://api.rubyonrails.org/classes/ActiveRecord/Associations/ClassMethods.html) –