Reputation: 2662
I got this query and would like to order the results by 'delivery_time':
d = Date.today.at_midnight
orders = car.orders.where("finished_at IS NOT NULL AND delivery_time > ?", d).order(delivery_time: :desc)
The problem is, the order method doesn't work - it still gets ordered by id! Whatever I put into the order method arguments doesn't seem to work.
This is what my orders table partially looks like:
create_table "orders", force: true do |t|
t.datetime "delivery_time"
t.datetime "finished_at"
t.datetime "created_at"
t.datetime "updated_at"
end
car.rb:
has_many :orders, -> { order "delivery_time ASC" }
.explain output:
SELECT `orders`.* FROM `orders` WHERE `orders`.`car_id` = 1 AND (finished_at IS NOT NULL AND delivery_time > '2014-09-09 03:00:00') ORDER BY delivery_time ASC, `orders`.`delivery_time` DESC
Upvotes: 0
Views: 220