1

次の状況でデータベースを2回検索することを避けるために、Railsの魔法があるのだろうか。

背景:保留中または送信済みで、本日締め切りのユーザーからの注文を検索しています。

擬似コードは次のとおりです。

order_array = Order.where(:filled => pending) || Order.where(:fileld => done, :due => today)

ここで問題となるのは、これがデータベースを2回検索することです。これを1回の検索で実行したいので、RoRがどのように実行するかについてのポインタをいただければ幸いです。

4

2 に答える 2

0

私はこれがあなたが探しているものだと思います:

order_array = Order.where("filled = 'PENDING' OR (filled = 'SENT' AND due BETWEEN ? AND ?)", Time.zone.now.beginning_of_day, Time.zone.now.end_of_day)
于 2013-01-21T21:12:36.703 に答える
0

以下のチェーン条件のように試してください-

Customer.where(:reseller_id => :map_reseller_id).where(:is_deleted_by_reseller => false)
于 2015-09-24T12:13:52.607 に答える