Tengo una pregunta sobre la asociación registro activo, en referencia a esta parte de la documentación de rieles:cómo rellenar los campos de un has_many unirse a través de la mesa
http://guides.rubyonrails.org/association_basics.html#the-has_many-through-association
si tenemos tres modelos:
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
la documentación dice que la colección de unirse a los modelos puede ser gestionado a través de la API de esta manera:
physician.patients = patients
pero, ¿qué sucede si el modelo de cita, como en el ejemplo vinculado, tiene un campo llamado cita_fecha y quiero crear una cita nueva entre el médico y el paciente en una fecha específica? El siguiente código creará un registro en la tabla de citas, pero ¿cómo llenar la cita_fecha también en el tercer paso?
physician = Physician.first
patient = Patients.first
physician.patients << patient
hace algo como esto existe?
physician.patients.create(:patient => patient, 'appointment.appointment_time' => appointment_time)
También estoy teniendo este problema ... Quiero cambiar un valor predeterminado en un atributo en la tabla de unión, pero solo cuando se crea un registro asociado (por ejemplo, si se crea un paciente, configure la cita tiempo, pero en otras situaciones solo haríamos nuevas citas). – wulftone