我有这个模型
User.rb
default_scope :order => 'users.created_at DESC'
和
scope :ranking, lambda { unscoped { order('users.ranking DESC') }}
我仍然得到一个包含ORDER BY users.created_at DESC, users.ranking DESC
...
有人可以解释原因吗?
我真的不想从每个控制器调用未编程的人,我会使用这个模型。
谢谢!
答案 0 :(得分:1)
正如您所发现的那样,default_scope
通常比它的价值更麻烦。如果您想坚持下去,可以使用reorder
忽略之前的订单:
scope :ranking, reorder("ranking DESC")
答案 1 :(得分:-1)
不确定为什么@TimPost删除了我的答案,但是我正在使用rails 3.0.5和ruby 1.9.2进行项目,当我使用重新排序(它工作顺便说一句)时,它会在日志中说明这一点
DEPRECATION WARNING:不推荐重新订购。请使用except(:order).order(...)来代替。 (来自<class:Item>
所以我认为这是不公平的,我的答案被删除了,我得到了一个糟糕的回应