HABTM 关系确实不支持该:dependent
选项吗?
class Person < ActiveRecord::Base
has_and_belongs_to_many :posts, :dependent => :destroy
end
我正在尝试rails edge。
HABTM 关系确实不支持该:dependent
选项吗?
class Person < ActiveRecord::Base
has_and_belongs_to_many :posts, :dependent => :destroy
end
我正在尝试rails edge。
如果你想保持简单的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
可能会被 other 引用persons
)。
Person
但是从你的名字(和)猜测,Post
我会假设你可能会逃脱 aPerson has_many :posts
和 aPost belongs_to :person
在这种情况下你可以使用关联:dependent => :destroy
上的has_many
。
是的,它不支持它。请参阅文档。通常habtm
仅适用于非常非常简单的情况,如果您开始需要更复杂的东西,您应该切换到has_many :through
.
尝试这个:
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+ 已经处理了。