Tôi có một câu hỏi liên quan đến hiệp hội kỷ lục hoạt động, đề cập đến phần này của tài liệu ray:Làm thế nào để cư trường trong một has_many thông qua tham gia bảng
http://guides.rubyonrails.org/association_basics.html#the-has_many-through-association
nếu chúng ta có ba mô hình:
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
Tài liệu nói rằng việc thu thập các mô hình tham gia có thể được quản lý thông qua api theo cách này:
physician.patients = patients
nhưng nếu mô hình cuộc hẹn, như trong ví dụ được liên kết, có trường được gọi là cuộc hẹn và tôi muốn tạo cuộc hẹn mới cho Bác sĩ và Bệnh nhân vào một ngày cụ thể? Đoạn mã sau sẽ tạo một bản ghi trong bảng cuộc hẹn, nhưng cách điền địa chỉ cuộc hẹn trong bước thứ ba?
physician = Physician.first
patient = Patients.first
physician.patients << patient
có điều gì đó như vậy không?
physician.patients.create(:patient => patient, 'appointment.appointment_time' => appointment_time)
Tôi cũng đang gặp sự cố này ... Tôi muốn thay đổi giá trị mặc định trên thuộc tính trong bảng nối, nhưng chỉ khi tạo bản ghi được liên kết (ví dụ: nếu bệnh nhân được tạo, hãy đặt cuộc hẹn thời gian, nhưng trong các tình huống khác, chúng tôi sẽ chỉ thực hiện các cuộc hẹn mới). – wulftone