Как переопределить: порядок, определенный в has_many - PullRequest
43 голосов
/ 17 ноября 2010

у меня

class Authors 
has_many :books, :order => 'name ASC'

Я пытаюсь запросить все книги, отсортированные по имени DESC

Authors.books.order('name DESC')

но результат

SELECT * FROM .... ORDER BY name ASC, name DESC

и результаты возвращаются с сортированным именем ASC

есть ли способ удалить исходный порядок в ассоциации или переопределить его? Или указание порядка в отношении - плохая идея?

с использованием Rails 3.0.3

Ответы [ 3 ]

92 голосов
/ 17 ноября 2010

Использование изменить порядок :

Authors.books.reorder('name DESC')
35 голосов
/ 26 декабря 2010

.reorder() устарел в Rails 3.0.3 в пользу .except(:order).order()

Так что используйте это:

Authors.books.except(:order).order('name DESC')
0 голосов
/ 20 июля 2012
Author.first.books.reverse_order
...