Gha*_*har 11 ruby-on-rails ruby-on-rails-3.2
有一些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
Run Code Online (Sandbox Code Playgroud)
Appointment表有一个名为appointment_date的列
如何让特定医生的所有患者在指定日期预约?
spu*_*len 17
Patient.includes(:physicians, :appointments).where('physicians.id = ? AND appointments.appointment_date = ?', <id or ids array>, Date.today)
Run Code Online (Sandbox Code Playgroud)
Date.today可以用任何东西改变,而pysician由id或一组id指定.
你也可以这样做:
physician = Physician.find(id)
patients = physician.patients.includes(:appointments).where('appointments.appointment_date = ?', some_date)
Run Code Online (Sandbox Code Playgroud)
编辑:
在Rails 4和转发中,您需要添加references(:appointments)到查询中以便在where子句中使用约会.
| 归档时间: |
|
| 查看次数: |
10955 次 |
| 最近记录: |