如何覆盖 has_many 中定义的 :order
我正在
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
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
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
使用重新排序:
Use reorder:
.reorder()
在 Rails 3.0.3 中已被弃用,取而代之的是. except(:order).order()
所以使用这个:
.reorder()
has been deprecated in Rails 3.0.3 in favor of.except(:order).order()
So use this: