我想知道是否存在Rails魔法以避免在以下情况下搜索数据库两次:
背景:我正在搜索用户的订单,这些订单可能是PENDING或SENT,并且今天到期。
这是伪代码:
order_array = Order.where(:filled => pending) || Order.where(:fileld => done, :due => today)
现在问题是这会搜索数据库两次。我想在一次搜索中做到这一点,并希望指出RoR将如何做到这一点。
答案 0 :(得分: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)
答案 1 :(得分:0)
尝试以下链条件 -
Customer.where(:reseller_id => :map_reseller_id).where(:is_deleted_by_reseller => false)