1
我有两个模型:Patient
和CodeStatus
。Rails:查询零has_one关联
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长长的一串。我认为铁轨会包括这个帮手,就像他们为许多其他协会一样。有谁知道一个不太详细的解决方案吗?提前致谢。
几个问题:1)'Patient.primary_key'和'CodeStatus.primary_key'的输出是什么? 2)为什么查询以patient.patient_id列开头?默认情况下,它应该期望主键为'patient.id' ... 3)你可以将整个has_one/belongs_to行添加到你的问题中吗?你是否将任何选项传递给这些方法? 4)你可以为这两个表添加db/schema吗? – Glyoko
'支持where(column:nil)',并用postgres生成'WHERE“表。”“column_name”IS NULL'。你可能搞砸了关联定义。如果'CodeStatus'属于'Patient','CodeStatus'必须有'patient_id'列。 – nicooga