在rails指南中,描述如下:

如果对象与:dependent => :destroy关联,它们将被另外销毁,如果对象与:dependent => :delete_all关联,它们将被删除

对,酷.但是被销毁和被删除有什么区别呢?

推荐答案

区别在于回调.

:delete_all直接在应用程序中生成,并通过SQL删除:

DELETE * FROM users where compagny_id = XXXX

对于:destroy,有一个你所有子元素的实例.所以,如果你不能摧毁它,或者如果每个都有自己的:dependent,可以调用它的回调.

Ruby-on-rails相关问答推荐

未捕获语法错误:try 编辑TRIX时,请求的模块未在Rails 7.1中提供名为默认的导出(在youtube.js:1:8)

Rails引擎importmap Uncaught ReferenceError:未定义tinymce

如何从 Rails7.2 中的控制器获取名称空间?

为什么在使用 Ruby on Rails 时我的徽标没有出现在 Bootstrap 导航栏中?

Rails HMAC - 使用应用程序机密作为加密密钥

Rails - Comment.count没有改变1

Rails ActiveRecord 中的更新插入

Rails 和 jsonb 类型jsonb不存在

2个空格或1个制表符,Rails社区的缩进标准是什么?

如何将实例变量传递给 RSpec 共享示例

Factory Girl + Mongoid 在fixture 中嵌入文档

rake assets:precompile try 连接到数据库

在 rails 3 中设置记录器

如何在我的 rails 应用程序中测试 ActiveRecord::RecordNotFound?

未定义的方法 attr_accessible

Ruby gem 命名约定

如何在 Ruby on Rails 的内存缓存存储中列出键?

您将 Rack 中间件文件和要求放在哪里?

禁用 JS/Ajax 请求时的 ActionController::InvalidAuthenticityToken

'respond_to' 格式语句中的 `:location => ...` 和 `head :ok` 是什么意思?