Order
型号:
class Order < ActiveRecord::Base
has_many :sales, dependent: :destroy, inverse_of: :order
end
has_many Sale
s:
class Sale < ActiveRecord::Base
belongs_to :order, inverse_of: :sales
validates :order, :product, :product_group, :presence => true
before_create :price
def price
mrr = Warehouse.where(:product => self.product).pluck(:mrr).shift.strip.sub(',', '.').to_f
self.price = mrr * self.quantity.to_f
end
end
当我销毁 anOrder
时,关联Sale
的 s 也应该被销毁,但是这样做时遇到了错误:
RuntimeError in OrdersController#destroy
Can't modify frozen hash
此行突出显示:self.price = mrr * self.quantity.to_f
。
Sale
逐步手动销毁所有关联的 s 记录没有错误。没有Sale
关联后,我也可以销毁Order
记录。
有任何想法吗?