带有Postgres数据的Rails不按顺序返回
我刚刚将我的应用程序从MySQL转换为Postgres。 以前,对.all的请求以id顺序返回所有行。 在Postgres上,行无序返回。 同样,
Person.first
用于返回id为1的记录,现在它有时会返回另一条记录。
如果我添加这样的订单子句:
Person.order("id").first
查询成功并返回第一行。 这是预期的行为吗?
这篇文章回答了你的问题:
我不认为默认情况下按ID排序,因为我认为数据库是如何返回非有序查询的。 您可以通过在模型顶部定义默认范围来对其进行排序,如下所示:
default_scope order('id ASC')
然后调用Model.all将等同于调用Model.order(’id ASC’)。