45

这对我来说可能是一个非常基本的疏忽,但我似乎想不起一个简单的方法来删除两个通过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

那么,是否有一个同样简单的反面?IE:

photo.tags.remove tag
4

1 回答 1

69

这就是你想要的:

photo.tags.delete(tag)
于 2012-11-04T11:07:42.620 回答