ruby-on-rails - rails :dependent => :destroy VS :dependent => :delete_all

标签 ruby-on-rails ruby model associations

在rails guides中是这样描述的:

Objects will be in addition destroyed if they’re associated with :dependent => :destroy, and deleted if they’re associated with :dependent => :delete_all

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

最佳答案

区别在于回调。

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

DELETE * FROM users where compagny_id = XXXX

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

关于ruby-on-rails - rails :dependent => :destroy VS :dependent => :delete_all,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2797339/

相关文章:

ruby-on-rails - 使用 asset_sync : Assets unavailable on the second server 在两台服务器上部署 Rails

mysql - Cakephp:如果每个模型通过某个外键连接到其他模型,如何链接模型

ruby-on-rails - 随处可见的 Rails 模型

ruby-on-rails - Rails - 是否可以在模型中为其嵌套属性设置快捷方式?

python - 测试 Django 中外键的重复条目 '1'

ruby-on-rails - 我如何为 erb 中的复选框赋值?

mysql - ActiveRecord 在保存时引发异常,但在 Rails 中没有发生任何爆炸

ruby-on-rails - 用于 Rails 测试的编译缓冲区中的 Emacs shell 或终端转义字符

ruby-on-rails - 一个异常复杂的 ActiveRecord 关系

ruby - 如何在 PORO 中使用 RSpec 期望