触发依赖::使用重写的destroy-destroy进行破坏

时间:2012-10-31 12:29:28

标签: ruby-on-rails activerecord model

在我们的应用程序中,我们覆盖了ActiveRecord destroy方法,这样我们的记录就不会被删除(因此用户可以取消删除)。像这样:

def destroy
  self.is_deleted = true
  self.save
  freeze
end

然而,这似乎已经禁用了我们has_many关系中的依赖性破坏。换句话说,如果在父对象上调用destroy,则has_many的子对象不会被销毁(它们不会被删除,即SQL'DELETE...',也不会被删除被覆盖的destroy - 方法被称为。)。

如何触发子对象的销毁。

谢谢!

1 个答案:

答案 0 :(得分:6)

你需要触发destroy回调。

def destroy
  self.is_deleted = true
  self.save
  run_callbacks :destroy
  freeze
end