我有两种模式: -
class Order < ApplicationRecord
has_many :order_items, inverse_of: :order, dependent: :destroy
after_update :update_qantity
def update_quantity
self.order_items.each do |oi|
if oi.saved_change_to_quantity?
#some logic
end
end
end
和
class OrderItem < ApplicationRecord
belongs_to :order, inverse_of: :order_items
end
现在,当我从rails控制台执行此操作时: -
ord = Order.first
ord.order_items.first.update_attributes(quantity: 101)
ord.save!
控件确实进入update_quantity方法,但saved_change_to_quantity?是假的(由byebug测试)。我应该如何更新嵌套属性,以便控制确实进入if语句。
答案 0 :(得分:0)
得到我想要的东西: -
Order.first.update_attributes(order_items_attributes: {id: "you_order_item_id", quantity: 101})