这可能是我疏忽了一个非常基本的问题,但我似乎想不起来一个简单的方法,可以删除通过has_many:through
连接的两个对象之间的关联。例如:
class Photo
has_many :tags, :through => :taggings
has_many :taggings, :dependent => :destroy
end
class Tags
has_many :photos, :through => :taggings
has_many :taggings, :dependent => :destroy
end
class Taggings
belongs_to :photo
belongs_to :tag
end
如果您有两个对象,
tag
和 photo
,您可以通过执行以下操作将它们关联起来:photo.tags << tag
那么,是否有同样简单的相反情况呢?即:
photo.tags.remove tag
delete
不会触发关联模型的before_destroy
和after_destroy
回调函数。如果需要这样做,请使用destroy
代替delete
。 - PinnyM