Rails:依赖和:删除

时间:2009-04-10 21:19:43

标签: ruby-on-rails activerecord dependencies

我正在运行Rails 2.0.2并且无法使用:dependent => :在我的AR协会中删除

 has_many :items, :dependent => :delete

我收到了这个错误。

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

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

3 个答案:

答案 0 :(得分:7)

这是relevant documentation for Rails 2.0.2

  

如果设置为:destroy将销毁所有关联的对象   通过呼叫他们的这个对象   破坏方法。如果设置为:delete_all   删除所有关联的对象   没有调用他们的破坏方法。   如果设置为:nullify all associated   对象的外键设置为NULL   没有调用他们的保存回调。

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

答案 1 :(得分:2)

默认操作是“什么都不做”。对象仍然是孤立的,没有任何东西被删除,破坏或无效。

答案 2 :(得分:0)

在当前稳定版本2.3.2的文档中没有提及:删除:

  

如果对象与以下相关联,则会另外销毁:dependent => :destroy,如果它们与以下内容相关联,则删除:dependent => :删除所有。

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