44

我有

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

4

3 回答 3

102

使用重新排序

Authors.books.reorder('name DESC')
于 2010-11-17T07:52:54.117 回答
35

.reorder()在 Rails 3.0.3 中已弃用,取而代之的是.except(:order).order()

所以使用这个:

Authors.books.except(:order).order('name DESC')
于 2010-12-26T15:17:04.870 回答
-1
Author.first.books.reverse_order
于 2012-07-20T03:34:08.980 回答