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

Joc*_*lin 6 activerecord model ruby-on-rails

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

def destroy
  self.is_deleted = true
  self.save
  freeze
end
Run Code Online (Sandbox Code Playgroud)

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

如何触发子对象的销毁.

谢谢!

vis*_*ise 6

您需要触发destroy回调.

def destroy
  self.is_deleted = true
  self.save
  run_callbacks :destroy
  freeze
end
Run Code Online (Sandbox Code Playgroud)