我在Heroku上有一个小的Rails 4项目。在视图中有一个表,其内容使用Model.all.each.
显示每隔一段时间 - 我认为每当模型更新时 - 表的顺序会发生变化。令人不安的是,我还没能在localhost上重现这个怪癖。虽然它很容易纠正,但我担心它可能是其他一些未被发现的问题的症状。
[编辑:行为仅在迭代期间出现。如果我索引到集合,它将返回预期的元素]
[第二次编辑:抓第一次编辑。我假设Model.first
相当于Model.all[0],
但是从Heroku运行控制台告诉我它显然不是:第一个给了我id为1的记录,第二个给了我id为10的记录(当我运行each
时首先出现的记录。)
答案 0 :(得分:1)
可能是你没有在开发中使用postgres,但是在Heroku上这样做是因为这是默认的吗?
来自postgres的文档:
如果未选择排序,则将以未指定的方式返回行 订购。在这种情况下的实际顺序将取决于扫描和连接 计划类型和磁盘上的顺序,但不能依赖它。
http://www.postgresql.org/docs/9.1/static/queries-order.html