web-dev-qa-db-ja.com

アクティブレコードhas_many:関連するレコードを1つ削除する

これは私の側では非常に基本的な見落としかもしれませんが、has_many :throughを介して結合された2つのオブジェクト間の関連付けを削除する簡単な方法を思い出せないようです。 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の2つのオブジェクトがある場合、これを実行するだけでそれらを関連付けることができます。

photo.tags << tag

それで、これと同じように単純な反対はありますか?つまり:

photo.tags.remove tag
43
Andrew

ここにあなたが欲しいものがあります:

photo.tags.delete(tag)
68
aguynamedloren