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

问题描述

不同之处在于回调。

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

DELETE * FROM users where compagny_id = XXXX

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

解决方法

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

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

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...