Active Record has_many:通过删除一个相关记录

时间:2012-11-04 05:12:34

标签: ruby-on-rails activerecord has-many-through

这对我来说可能是一个非常基本的疏忽,但我似乎无法想起一个简单的方法来删除通过has_many :through加入的两个对象之间的关联。 IE:

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

如果您有两个对象tagphoto,则可以通过以下方式关联它们:

photo.tags << tag

那么,是否有一个与此相反的简单对立面?即:

photo.tags.remove tag

1 个答案:

答案 0 :(得分:64)

这就是你想要的:

photo.tags.delete(tag)