How to override :order defined in a has_many
-
25-09-2019 - |
문제
I have
class Authors
has_many :books, :order => 'name ASC'
I am trying to query all the books sorted by name DESC
Authors.books.order('name DESC')
but the result is
SELECT * FROM .... ORDER BY name ASC, name DESC
and the results come back with the name sorted ASC
is there a way to remove the original order in the association or override it? Or is specifying an order in a relation a bad idea?
using Rails 3.0.3
해결책
Use reorder:
Authors.books.reorder('name DESC')
다른 팁
.reorder()
has been deprecated in Rails 3.0.3 in favor of .except(:order).order()
So use this:
Authors.books.except(:order).order('name DESC')
Author.first.books.reverse_order
제휴하지 않습니다 StackOverflow