En la guía de asociaciones de Rieles, demuestran una relación mediante has_many muchos-a-muchos: a través de este modo:Adición y eliminación de un has_many: a través de relación
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
¿Cómo puedo crear y eliminar las citas?
Si tengo un @physician
, ¿escribo algo como lo siguiente para hacer una cita?
@patient = @physician.patients.new params[:patient]
@physician.patients << @patient
@patient.save # Is this line needed?
¿Qué hay de código para eliminar o destruir? Además, si un paciente ya no existía en la tabla de citas, ¿se destruirá?
Gracias, supongo que eliminar la cita también eliminará al médico del paciente y viceversa? – dteoh
No, no lo hará a menos que agregue ': dependency =>: destroy' a' belongs_to'. – Kevin
En realidad, la configuración ': dependency' simplemente agrega un gancho before_destroy al modelo. Sin esto, ningún otro modelo se vería afectado al destruir un registro modelo. – Kevin