Rails依赖哪些选项可能?

Geo*_*ler 12 ruby-on-rails destroy dependent-destroy ruby-on-rails-4

我在Rails 4中收到以下错误

依赖选项必须是destroy delete之一

显然https://github.com/rails/rails/issues/3458之前支持其他选项.但是现在有什么可能呢?我找不到任何其他文件

谢谢您的帮助

小智 32

文档可在此处获得

看起来支持以下选项:

  • :destroy - 导致所有相关对象也被销毁.
  • :delete_all - 导致所有关联对象直接从数据库中删除(因此不会执行回调).
  • :nullify - 使外键设置为NULL.回调不会执行.
  • :restrict_with_exception - 如果存在任何关联记录,则会引发异常.
  • :restrict_with_error - 如果存在任何关联对象,则会将错误添加到所有者.

  • 值得一提的是,默认行为(当存在数据库级唯一约束且未配置 `dependent` 时)是捕获数据库级故障并引发 `ActiveRecord::InvalidForeignKey`。`restrict_with_exception` 选项在行为上与此最接近,但它在甚至尝试数据库事务之前引发(更具描述性)`ActiveRecord::DeleteRestrictionError`。 (4认同)