2015-04-06 2 views
2

В Rails Guide for associations' has_many section является следующий пример:Понимание Руководство Rails ассоциации Пример

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 

новые модели присоединиться созданы для новых ассоциированных объектов, и если некоторые из них пошли их строки удаляются «.

Я хотел бы понять :

1) Где physician.patients = patients линия происходит
2) Кто такие patients, которые назначаются на??

ответ

3
  1. physician.patients = patients может произойти в контроллере или модели.
  2. patients - это список объектов Patient, которые вы можете создать перед вызовом указанного назначения.

Попробуйте это в консоли:

> patient1 = Patient.create(...) # Pass appropriate parameters 
> patient2 = Patient.create(...) # Pass appropriate parameters 
> patients = [patient1, patient2] 
> physician = Physician.create(...) # Pass appropriate parameters 
> physician.patients = patients 
> physician.patients.count 
=> 2 
Смежные вопросы