web-dev-qa-db-fra.com

Actif enregistrement has_many: via Supprimer un enregistrement associé

Cela peut être une surveillance très fondamentale de ma part, mais je ne peux pas sembler rappeler une méthode simple pour éliminer une association entre deux objets joints via has_many :through. C'EST À DIRE:

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

Si vous avez deux objets, tag et photo, vous pouvez les associer simplement en faisant cela:

photo.tags << tag

Alors, y a-t-il un juste simple d'opposé à cela? c'est à dire:

photo.tags.remove tag
43
Andrew

voici ce que vous voulez:

photo.tags.delete(tag)
68
aguynamedloren