一尘不染

Rails :dependent => :destroy VS :dependent => :delete_all

Rails

在 Rails 指南中,它是这样描述的:

如果对象与 相关联,则对象将被另外销毁:dependent => :destroy,如果与:dependent => :delete_all

没错,酷。但是被销毁和被删除有什么区别呢?我都试过了,它似乎做同样的事情。


阅读 163

收藏
2022-06-25

共1个答案

一尘不染

不同之处在于回调。

:delete_all直接在您的应用程序中创建并通过 SQL 删除:

DELETE * FROM users where compagny_id = XXXX

使用:destroy,您的所有孩子都有一个实例化。所以,如果你不能销毁它或者如果每个都有自己的:dependent,它的回调可以被调用。

2022-06-25