2017-03-06 79 views
0

我的訂單模型有pickup日期,交貨日期和狀態。 所以我想選擇訂單 -在rails中寫入activerecord查詢

  • 如果狀態,如果picked_up然後pickup_date應該有一些日期值(eg, '12/12/2012')
  • 如果狀態,如果交付然後DELIVERY_DATE應該有一些日期值(eg, '12/12/2012')

我想我們可以使用WHEN CASE和Activerecord。有人可以幫我嗎?

回答

1
Order.where("(status = 'pickup_up' AND pickup_date = :date) OR (status = 'delivered' AND delivery_date = :date)", date: Date.today) 

在Rails 5可以實際已經使用 '或' 方法ActiveRecord的關係:

Order.where(status: :picked_up, pickup_date: Date.today).or(Order.where(status: :delivered, delivery_date: Date.today)) 
0
Order.where(status: :picked_up).update(:pickup_date '12/12/2012') 

Order.where(status: :delivered).update(:delivery_date '12/12/2012')