habtm关系不支持:依赖选项

时间:2010-05-10 00:33:37

标签: ruby-on-rails has-and-belongs-to-many

HABTM关系是否支持:dependent选项?

class Person < ActiveRecord::Base
  has_and_belongs_to_many :posts, :dependent => :destroy
end

我正在尝试使用rails。

3 个答案:

答案 0 :(得分:77)

如果您想保持简单的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可能被其他{引用} {1}})。

但是从你的名字(personsPerson)开始猜测我会假设您可以使用PostPerson has_many :posts来逃避,在这种情况下您可以使用Post belongs_to :person协会上的:dependent => :destroy

答案 1 :(得分:18)

是的,它不支持它。 See the docs。通常habtm仅适用于非常非常简单的情况,如果您开始需要更复杂的事情,则应切换到has_many :through

答案 2 :(得分:3)

试试这个:

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

你不需要发帖。清楚,因为Rails 4.2+已经处理过了。