Я потратил довольно много времени на поиски ТАК, но я застрял ...
Я хотел бы вычислить base_price
для product
до того, как product
будет сохранено в базе данных, но я бы хотел сделать условную сумму для поля 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
рассчитывается правильно.
Может ли кто-нибудь помочь, пожалуйста?