Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 销毁而不回调_Ruby On Rails - Fatal编程技术网

Ruby on rails 销毁而不回调

Ruby on rails 销毁而不回调,ruby-on-rails,Ruby On Rails,我想跳过特定销毁方法的回调 @object.destroy //but no callbacks, like after_commit 我不是在寻找删除。因为delete只会删除对象。它不会处理关联的子对象。因为销毁也会销毁依赖的孩子。有两种方法: 若您只想执行一次,则应通过数据库或控制台手动删除它和关系 如果你想让这种行为永久存在,你需要改变你的外键,让它像某人在评论中建议的那样,在删除时显示 例如: def更改 在删除::级联上添加\u外键:childrentable,:object

我想跳过特定销毁方法的回调

@object.destroy //but no callbacks, like after_commit

我不是在寻找
删除
。因为
delete
只会删除对象。它不会处理关联的子对象。因为
销毁
也会销毁依赖的孩子。

有两种方法:

  • 若您只想执行一次,则应通过数据库或控制台手动删除它和关系
  • 如果你想让这种行为永久存在,你需要改变你的外键,让它像某人在评论中建议的那样,在删除时显示
例如:

def更改
在删除::级联上添加\u外键:childrentable,:object
结束


这将更改您的ChildrenTable表外键对象id,使其在删除级联时具有

我同意,
DELETE
是“在没有回调的情况下销毁”。因为
DELETE
只会删除对象。它不会处理关联的子对象。因为
destroy
也将销毁从属子项。您可以使用
跳过回调
然后销毁当前子项object@leo将外键与\u delete::cascade上的
一起使用,数据库将删除子对象。@j-dexx,听起来不错,谢谢。但实际上我只想在这一点上禁用回调。如果对象从任何其他点被破坏,我希望回调能够正常工作。