44

私は持っています

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

名前DESCでソートされたすべての本を照会しようとしています

Authors.books.order('name DESC')

しかし、結果は

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

結果は、ソートされたASCという名前で返されます

アソシエーションの元の順序を削除したり、オーバーライドしたりする方法はありますか?または、リレーションで順序を指定するのは悪い考えですか?

Rails3.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 に答える