habtm关系不支持:依赖选项

HABTM关系不支持:dependent选项是真的吗?

 class Person  :destroy end 

我正在尝试rails edge。

是的,它不支持它。 查看文档 。 通常habtm仅适用于非常非常简单的情况,如果你开始需要更复杂的东西,你应该切换到has_many :through

如果你想保持简单的has_and_belongs_to_many关联,你可以添加:

 class Person < ActiveRecord::Base has_and_belongs_to_many :posts before_destroy { posts.clear } end 

这将清除该person的所有条目的连接表。 注意:这只会从连接表中删除记录,它不会破坏posts (如果它是双向的has_and_belongs_to_many因为post可能被其他persons引用)。

但是从你的名字猜测( PersonPost )我会假设你可能会使用一个Person has_many :posts和一个Post belongs_to :person在这种情况下你可以在has_many关联上使用:dependent => :destroy

试试这个:

 class Person < ActiveRecord::Base has_and_belongs_to_many :posts before_destroy do posts.each { |post| post.destroy } end end 

你不需要posts.clear,因为Rails 4.2+已经处理过了。