2017-03-06 4 views
0

Ich habe "Order" -Modell mit pickup_date, Lieferdatum und Status. Deshalb möchte ich den Befehl wählen -Schreibe ActiveRecord Abfrage in Schienen

  • wenn Status, wenn picked_up dann sollte pickup_date (eg, '12/12/2012')
  • einige Datumswert, wenn Status geliefert, wenn dann sollte DELIVERY_DATE einige Datumswert (eg, '12/12/2012')

ich, dass wir denken sein kann WHEN CASE mit ActiveRecord verwenden. Kann mir jemand dabei helfen?

Antwort

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

In Rails 5 können Sie tatsächlich bereits verwenden 'oder' Methode für Active Beziehungen:

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') 
Verwandte Themen