ruby-on-rails-3 – ActiveRecord查找全部不按ID排序?

我在Heroku部署中有一个奇怪的问题,我似乎不能在本地重复.基本上,当我发现所有在一个特定的模型,而不是按ID排序,似乎没有任何命令返回它们.

通常记录如下:

>> Model.all

=> [<model id: 2>,<model id: 1>,<model id: 3>,<model id: 4>,<model id: 5>]

… 等等.

如果我明确地调用Model.order(“id ASC”),它将按预期的方式返回模型.

是什么赋予了?为什么会发现所有的对象都没有以递减的ID顺序返回?

解决方法

认情况下,ID的排序不能保证,因为取决于非有序查询是如何被排序的(通常是未指定的).您可以通过在模型顶部定义一个 default scope来使其始终如此:
default_scope { order('id ASC') }

然后调用Model.all将等效于调用Model.order(‘id ASC’).

相关文章

validates:conclusion,:presence=>true,:inclusion=>{...
一、redis集群搭建redis3.0以前,提供了Sentinel工具来监控各...
分享一下我老师大神的人工智能教程。零基础!通俗易懂!风趣...
上一篇博文 ruby传参之引用类型 里边定义了一个方法名 mo...
一编程与编程语言 什么是编程语言? 能够被计算机所识别的表...
Ruby类和对象Ruby是一种完美的面向对象编程语言。面向对象编...