触发相关的:破坏与覆盖破坏法 [英] Triggering dependent: :destroy with overridden destroy-method

查看:99
本文介绍了触发相关的:破坏与覆盖破坏法的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

在我们的应用程序,我们已经覆盖了ActiveRecord的销毁方法,使我们的记录不被删除(这样用户可以取消)。像这样:

In our application we've overridden the ActiveRecord destroy method so that our records do not get deleted (so the user can undelete). Like so:

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

不过,这似乎已禁用依赖破坏我们的的has_many 的关系。换句话说,如果破坏被称为父对象上的的has_many 不被摧毁的子对象(其不被删除,即SQL'删除... ',也不是重写 -method称为)。

However, this seems to have disabled the dependent destroy on our has_many relationships. In other words, if destroy is called on a parent object, the child objects of has_many do not get destroyed (they don't get deleted, i.e, SQL 'DELETE...', nor is the overridden destroy-method called).

我如何触发子对象的破坏。

How do I trigger the destruction of the child objects.

谢谢!

推荐答案

您需要触发销毁回调。

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

这篇关于触发相关的:破坏与覆盖破坏法的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆