什么可以改变Active Record关系的默认顺序?

时间:2015-04-10 18:26:39

标签: ruby-on-rails heroku rails-activerecord

我在Heroku上有一个小的Rails 4项目。在视图中有一个表,其内容使用Model.all.each.显示每隔一段时间 - 我认为每当模型更新时 - 表的顺序会发生变化。令人不安的是,我还没能在localhost上重现这个怪癖。虽然它很容易纠正,但我担心它可能是其他一些未被发现的问题的症状。

[编辑:行为仅在迭代期间出现。如果我索引到集合,它将返回预期的元素]

[第二次编辑:抓第一次编辑。我假设Model.first相当于Model.all[0],但是从Heroku运行控制台告诉我它显然不是:第一个给了我id为1的记录,第二个给了我id为10的记录(当我运行each时首先出现的记录。)

1 个答案:

答案 0 :(得分:1)

可能是你没有在开发中使用postgres,但是在Heroku上这样做是因为这是默认的吗?

来自postgres的文档:

  

如果未选择排序,则将以未指定的方式返回行   订购。在这种情况下的实际顺序将取决于扫描和连接   计划类型和磁盘上的顺序,但不能依赖它。

http://www.postgresql.org/docs/9.1/static/queries-order.html