我正在开发一个Rails 3.2.13应用程序,我有两个模型:
class Invoice < ActiveRecord::Base
has_many :client_invoices, dependent: :nullify
...
end
class ClientInvoice < ActiveRecord::Base
belongs_to :invoice
...
end
我想知道是否有办法让ClientInvoices知道他们的父Invoice何时被销毁并调用私有方法来更新他们的状态。
我试图在Invoice的after_destroy回调中执行此操作,方法是循环收集并更改每个ClientInvoice的状态,但该集合在那里已经为空。
实现这一目标的最佳方法是什么?
非常感谢你!
答案 0 :(得分:0)
before_destroy 将有效。
before_destroy :update_client_invoice_statue
private
def update_client_invoice_statue
client_invoices.each do |invoice|
#... code to update the status of record
end
end
注意:此before_destroy方法应返回 true 以继续销毁对象。