我在这里有两种型号,订购和退货
退货退款后,我想将订单 :status
更新为“退款”
return.rb
belongs_to :order
after_save :set_order_status
enum status: { pending: 0, confirmed: 1, refunded: 2 }
def set_order_status
if self.status == "refunded"
self.order.status = "refunded"
end
end
order.rb
has_one :returning
enum status: { pending: 0, paid: 1, confirmed: 2 , shipped: 3, cancelled: 4, refunded: 5 }
我相信这种方式行不通...我的方法set_order_status
不会更改订单的任何内容...
答案 0 :(得分:2)
您有使用枚举的方法。因此您可以在after_save方法中执行以下操作,
return.rb
belongs_to :order
after_save :set_order_status
enum status: { pending: 0, confirmed: 1, refunded: 2 }
def set_order_status
self.order.refunded! if self.refunded?
end