我花了相當一段時間SO搜索,但我堅持......的Rails 3:條件的總和before_save
我想計算base_price
爲product
product
之前保存在數據庫中,但我'd想要在變體表中的required
字段中作爲條件。
下面是相關代碼:
class Product < ActiveRecord::Base
has_and_belongs_to_many :variants
before_save :calculate_price
private
def :calculate_price
self.base_price = variants.where(:required => true).to_a.sum(&:price_fixed)
end
end
:required
是一個布爾領域variants
聲明適用於已保存的產品,但是這並沒有創建一個也沒有。因此,當我創建產品時,價格爲0美元,更新時,base_price
正確計算。
有人可以幫忙嗎?
何時/何時將變體分配給新產品? – 2012-01-15 22:24:49
變體分配給產品控制器中的產品。現在,before_save,我想更新產品的base_price。這個問題似乎與.where(:required => true)有關。 – Michael 2012-01-15 22:40:29