【问题标题】:Rails :dependent and :deleteRails :dependent 和 :delete
【发布时间】:2009-04-10 21:19:43
【问题描述】:

我正在运行 Rails 2.0.2,无法在我的 AR 关联中使用 :dependent => :delete

 has_many :items, :dependent => :delete

我收到了这个错误。

  The :dependent option expects either :destroy, :delete_all, or :nullify (:delete)

我无法找到 :delete_all 的文档以查看它是否符合我的要求。它与删除基本相同吗? :delete 最近是否添加到 Rails 中,并且不在我使用的版本中?

【问题讨论】:

    标签: ruby-on-rails activerecord dependencies


    【解决方案1】:

    这是relevant documentation for Rails 2.0.2

    如果设置为 :destroy 所有关联的对象都被销毁 通过调用他们的这个对象旁边 销毁方法。如果设置为 :delete_all 所有关联的对象都被删除 没有调用他们的销毁方法。 如果设置为 :nullify 所有关联的 对象的外键设置为 NULL 无需调用他们的保存回调。

    railsbrain.com 是查找特定 Rails 版本的文档的好地方。

    【讨论】:

      【解决方案2】:

      默认操作是“什么都不做”。对象保持孤立状态,没有任何内容被删除、销毁或无效。

      【讨论】:

        【解决方案3】:

        当前稳定版 2.3.2 的文档中没有提到 :delete:

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

        http://apidock.com/rails/ActiveRecord/Associations/ClassMethods/has_many

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-02-17
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-08-28
          • 1970-01-01
          • 2011-08-24
          相关资源
          最近更新 更多