Например, у меня есть врачи, у которых много назначений пациентам. Я хочу получить всех пациентов, которые в настоящее время активны в назначении:
class Doctor < ActiveRecord::Base
attr_accessible :name
has_many :appointments
has_many :patients, through: :appointments
end
И модель назначения:
class Appointment < ActiveRecord::Base
attr_accessible :patient_id, :began_at, :finished_at, :doctor_id
belongs_to :patient
belongs_to :doctor
scope :active, where(finished_at: nil)
end
Теперь я могу сделать что-то вроде doctor.appointments.active
, чтобы получить активные текущие встречи. Но я хочу, чтобы пациенты легко получали эти назначения. Есть ли способ сделать что-то вроде doctor.appointments.active.patients
? Или doctor.patients.active
имело бы больше смысла.
Могу ли я добавить область active
в строку has_many :patients
в классе Doctor?