Rails:查询nil has_one关联

Rails: Query nil has_one association

我有两个模型:PatientCodeStatus

CodeStatus belongs_to 患者和患者 has_one CodeStatus

我正在尝试查询 patient.code_status 为零的所有患者。我很惊讶地发现 Patient.where(code_status: nil) 无法投掷:column patients.patient_id does not exist

我已经找到了 this (fairly old) answer,但我很难相信最好的查询方式是通过一长串原始 SQL。我认为 rails 会像他们对许多其他协会所做的那样包括这个助手。有谁知道一个不那么冗长的解决方案?提前致谢。

问题是,

patient.code_status

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

时由Rails添加
class Patient
  has_one :code_status
end

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

Patient.includes(:code_status).where(code_statuses: { id: nil })