我的rails模型不会正确订购条目,为什么?

时间:2011-10-22 03:04:43

标签: ruby-on-rails ruby-on-rails-3 scope

我有一个带有以下范围的rails模型:

 default_scope order('created_at ASC')
 scope :published, order('created_at DESC').where(:draft=>false)

不幸的是,发布的范围不会按降序排序。

我写这个范围错了吗?

2 个答案:

答案 0 :(得分:1)

我相信:published范围不会覆盖默认排序,除非您使用reorder

http://guides.rubyonrails.org/active_record_querying.html#reorder

尝试

scope :published, where(:draft=>false).reorder('created_at DESC')

答案 1 :(得分:1)

您的默认范围仍会触发;您可以.reorder,明确获取Foo.unscoped.published,或使用with_exclusive_scope

有关详细信息,请参阅this SO question,其中包含更多信息的其他SO问题。