0

我正在开发一个 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 的 after_destroy 回调中执行此操作,方法是循环集合并更改每个 ClientInvoice 的状态,但集合在那里已经是空的。

实现这一目标的最佳方法是什么?

非常感谢您!

4

1 回答 1

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以继续销毁对象。

于 2013-03-20T19:11:28.610 回答