开发者

How to override :order defined in a has_many

开发者 https://www.devze.com 2023-01-25 17:48 出处:网络
I have class Authors has_many :books, :order => \'name ASC\' I am trying to query all the books sorted by name DESC

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
0

精彩评论

暂无评论...
验证码 换一张
取 消