1

我有两个模型:PatientCodeStatus.

CodeStatus belongs_toPatient 和 Patient has_oneCodeStatus

我正在尝试查询所有患者在哪里patient.code_status是零。我惊讶地发现Patient.where(code_status: nil)投掷不起作用:column patients.patient_id does not exist

我已经找到了这个(相当老的)答案,但我很难相信查询这个问题的最佳方法是通过一长串原始 SQL。我认为 rails 会像许多其他协会一样包含这个助手。有谁知道一个不那么冗长的解决方案?提前致谢。

4

1 回答 1

4

问题是,那

patient.code_status

不是一列,而是一个方法,当你说 Rails 添加

class Patient
  has_one :code_status
end

以下是获取与任何代码状态无关的所有患者的方法:

Patient.includes(:code_status).where(code_statuses: { id: nil })
于 2017-02-22T07:08:24.593 回答