Ruby on railでは、モデルには注文と支払いが含まれています。 注文と支払いの間に1対多の関係があります。 注文モデルでは、 has_many:payments、as as =>:payable 支払いレコードにはorder.idに設定されたpayable_idがあります。ROR- 1対多の関係でFindを使用することはできません
レポートでは、特定のタイプのオーダーに属するすべての支払いを選択したいと考えています。 使用: payments = Payment.find(:all、:conditions =>条件) 条件に 'payable.type = "a"を追加すると機能しません。 ActiveRecordはこれを正しいjoinステートメント(payable_id = order.idとorders.type = 'a')に展開していないようです。 ここに明示的なSQLを使用することはできません。条件には、コードの前に挿入されている他のものが含まれているからです。 おかげで、 ラフィLipkin
ありがとうございました。あなたが正しいです。支払いは他のタイプに属することができます。 条件にpayment.typeを追加しようとします。 –
Sigh。それは "payment.type"ではありません。それをデータベースで見る。これは「payments.payable_type」です。 –