问题描述
不同之处在于回调。
:delete_all
直接在您的应用程序中创建并通过 SQL 删除:
DELETE * FROM users where compagny_id = XXXX
使用:destroy
,您的所有孩子都有一个实例化。所以,如果你不能销毁它或者如果每个都有自己的:dependent
,它的回调可以被调用。
解决方法
在 Rails 指南中,它是这样描述的:
如果对象与 相关联,则对象将被另外销毁
:dependent => :destroy
,如果与:dependent => :delete_all
没错,酷。但是被销毁和被删除有什么区别呢?我都试过了,它似乎做同样的事情。