1

我想知道Rails是否有魔法可以避免在以下情况下两次搜索数据库:

背景:我正在搜索来自用户的订单,这些订单要么是 PENDING 要么 SENT 并且今天到期。

这是伪代码:

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

现在的问题是这会搜索数据库两次。我想在一次搜索中做到这一点,并希望得到有关 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 回答