我有一個關於活動記錄相關聯的問題,指的是軌道文檔的這一部分:中的has_many如何填充字段通過連接表
http://guides.rubyonrails.org/association_basics.html#the-has_many-through-association
如果我們有三種型號:
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
該文檔指出,可以通過api以這種方式管理加入模型的集合:
physician.patients = patients
但如果約會模型(如鏈接示例中)有一個名爲appointment_date的字段,並且我想在特定日期爲醫生和患者創建新約會,該怎麼辦? 以下代碼將在約會表中創建一條記錄,但是如何在第三步中填充appointment_date?
physician = Physician.first
patient = Patients.first
physician.patients << patient
做了這樣的事情嗎?
physician.patients.create(:patient => patient, 'appointment.appointment_time' => appointment_time)
我也遇到了這個問題...我想更改連接表中某個屬性的默認值,但僅當創建相關記錄時(例如,如果創建了Patient,則設置約會時間,但在其他情況下,我們只是新的約會)。 – wulftone