0

我遇到了 has_and_belongs_to_many 关系的问题。我有 2 个模型,Doctors 和 PatientMeeting。

class Doctor < ActiveRecord::Base
  has_and_belongs_to_many :patient_meetings
end
class PatientMeeting < ActiveRecord::Base
  has_and_belongs_to_many :doctors
end

问题是显示在 top50 中标记的医生的患者会议(我有一个名为 top50 的 bool 变量)。我需要创建一个查询,以降序列出这些医生的会议,并仅包括今天和明天的日期。我尝试了这个和变化,但没有奏效:

Doctor.joins(:patient_meetings).where(:top50 => true).where('patient_meetings.meeting_date' => Date.today.strftime("%Y-%m-%d")..Date.tomorrow.strftime("%Y-%m-%d")).order('patient_meetings.meeting_date DESC').limit(50)

我不知道下一步该做什么。任何帮助将非常感激。

4

3 回答 3

0

尝试这个:

PatientMeeting.joins(:doctors).where(doctors: {top50: true})
于 2013-09-18T08:11:19.137 回答
0

假设您正在使用mysql. 尝试这个

 Doctor.joins(:patient_meetings).where("patient_meetings.meeting_date <= CURDATE() + INTERVAL 1 DAY AND patient_meetings.meeting_date >= CURDATE()").order("patient_meetings.meeting_date DESC").limit(50)
于 2013-09-18T08:47:48.933 回答
0

患者与医生的会面显然具有其自身的特定属性,例如会发生的时间、可能的地点、可能是否发生。

因此,在我看来,它应该是通过关联的 has_many,而不是 has_and_belongs_to_many。

http://guides.rubyonrails.org/association_basics.html#choosing-between-has-many-through-and-has-and-belongs-to-many

于 2013-09-18T09:11:58.733 回答