簡體   English   中英

在Rails中寫入ActiveRecord查詢

[英]Write activerecord query in rails

我使用的是“訂單”模型,該模型具有Pickup_date,Delivery_date和狀態。 所以我想選擇訂單-

  • 如果狀態為pick_up,則pickup_date應該為某個日期值(eg, '12/12/2012') 12/12/2012 (eg, '12/12/2012')
  • 如果狀態為已交付,則delivery_date應該為某個日期值(eg, '12/12/2012')

我認為我們可以在Activerecord中使用WHEN CASE 有人可以幫我嗎?

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))

除了@M。 Stavnycha的答案,Rails在ActiveRecord查詢界面上有一個很好的部分,可以在這里找到http://guides.rubyonrails.org/active_record_querying.html

Order.where(status: :picked_up).update(:pickup_date '12/12/2012')

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM