Depuis le guide des associations Rails, ils démontrent plusieurs-à-plusieurs en utilisant has_many: à travers comme ceci:Ajout et suppression d'un has_many: par rapport
class Physician < ActiveRecord::Base
has_many :appointments
has_many :patients, :through => :appointments
end
class Appointment < ActiveRecord::Base
belongs_to :physician
belongs_to :patient
end
class Patient < ActiveRecord::Base
has_many :appointments
has_many :physicians, :through => :appointments
end
Comment pourrais-je créer et supprimer des rendez-vous?
Si j'ai un @physician
, est-ce que j'écris quelque chose comme ceci pour créer un rendez-vous?
@patient = @physician.patients.new params[:patient]
@physician.patients << @patient
@patient.save # Is this line needed?
Qu'en est-il du code pour la suppression ou la destruction? De plus, si un patient n'existait plus dans le tableau des rendez-vous, sera-t-il détruit?
Merci, je suppose que la suppression du rendez-vous permettra également de retirer le médecin du patient et vice versa? – dteoh
Non, ce n'est pas le cas sauf si vous ajoutez ': dependency =>: destroy' à' belongs_to'. – Kevin
En fait, le paramètre ': dependency' ajoute simplement un hook before_destroy au modèle. Sans cela, aucun autre modèle ne serait affecté lors de la destruction d'un enregistrement de modèle. – Kevin