Effacer un enregistrement d'une relation has_many

Bonjour,

j’ai un modèle de ce type :

class Interface < ActiveRecord::Base
has_many :cards
has_many :equipment, :through => :cards
end

class Equipment < ActiveRecord::Base
has_many :cards
has_many :interfaces, :through => :cards
end

class Card < ActiveRecord::Base
belongs_to :interface
belongs_to :equipment
end

J’aimerais pouvoir enlever facilement une carte de mon équipement…
J’ai essayé :

@equipment = Equipment.find params[:id]
@equipment.interfaces.delete params[:interface_id]

Cela me renvoit nil.

J’ai décidément du mal avec la logique Rails…

Je me répond à moi même grâce à l’article
http://blog.hasmanythrough.com/articles/2006/04/20/many-to-many-dance-off

Le modèle de jointure utilisée dans une relation du type has_many
:through utilise une clé primaire basique (id auto_increment)

Par contre, les tables de jointures pour has_and_belongs_to_many ont 2
clés primaires, du nom des 2 tables auquelle elle est raccrochée.

J’avais donc tout simplement (sic!) mélangé les 2 méthodes…

This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.

| Privacy Policy | Terms of Service | Remote Ruby Jobs