助けてください!インスタンスの状態でhas_manyインスタンスをクエリする方法はありません。
以下のクエリ句を1つにまとめる必要があります。句のjoins(:bar)
は、bar_id IS NULL
レコードがフィルタリングされます
Foo.where('bar_id IS NULL')
Foo.joins(:bar).where('bar.daily_budget > bar.daily_cost')
。
このように組み合わせるのは簡単ではありませんが、このbar_id IS NULL
はフィルタリングされます。私はFooの結果結果は、より多くのような
bar_id is null or (bar_id is not null AND bars.daily_budget > bars.daily_cost)
で欲しい
Foo.joins(:bar).where('bar.daily_budget > bar.daily_cost').where('bar_id IS NULL')
はbar_idを持っている必要がnullで、かつbars.daily_budget> bars.daily_costバーは時間が同時に存在する場合。
しかし 'Foo.joinsです(:バー).where(bar_id:NIL)'互換性がありません。 'where(:bar_id => nil)'の結果はフィルタリングされます。 コンソールで 'Foo.where(bar_id:nil).or(Foo.joins(:bar).where( 'bar.daily_budget> bar.daily_cost'))'を実行しようとしましたが、それらのエラーが発生しました。 'ArgumentError:Relation passed構造的に適合していなければならない。互換性のない値:[:joins] '。 – lululala
'Foo.left_outer_joins(:bar).where( 'foo.bar_idはnullまたはbar.daily_budget> bar.daily_cost')' – kiddorails