私は2つのモデル:Patient
とCodeStatus
を持っています。Rails:クエリnil has_one関連
CodeStatus belongs_to
患者、および患者has_one
CodeStatus
私はpatient.code_status
がnilであるすべての患者を照会しようとしています。私はPatient.where(code_status: nil)
が投げる動作しないことを見つけるために驚いた:column patients.patient_id does not exist
私はすでにthis (fairly old) answerを発見したが、私はそれが難しいこれを照会するための最良の方法は、生のSQLの長い文字列を介していることを信じることを見つけます。私は、他の多くの団体と同じように、このヘルパーがレールに含まれると思います。誰かがそれほど冗長ではない解決法を知っていますか?前もって感謝します。
patient.code_status
が列ではありませんが、この方法は、あなたが
ここclass Patient
has_one :code_status
end
はあなたが関連付けられていないすべての患者を取得したい方法であると言うのRailsで追加されたことを
カップルの質問:1) 'Patient.primary_key'と' CodeStatus.primary_key'の出力はどうですか? 2)なぜ、クエリはpatients.patient_id列を探していますか?デフォルトでは、主キーが 'patients.id'となるはずです... 3)has_one/belongs_to行全体をあなたの質問に追加できますか?これらのメソッドにオプションを渡していますか? 4)これら2つのテーブルに対してdb/schemaを追加できますか? – Glyoko
'where(column:nil)'がサポートされ、 'WHERE"テーブル "。"が生成されます。アソシエーションの定義が崩れている可能性があります。 'CodeStatus'が' Patient'に属している場合、 'CodeStatus'は' patient_id'カラムを持たなければなりません。 – nicooga