保存后更新关联的属性

时间:2019-04-08 12:32:08

标签: ruby-on-rails

我在这里有两种型号,订购退货

退货退款后,我想将订单 :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不会更改订单的任何内容...

1 个答案:

答案 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
相关问题