Mis*_*hko 11 ruby-on-rails ruby-on-rails-3
我知道这会Job.all返回所有工作的数组.
但是,订单会是什么?
他们是按升序排序的id吗?
什么Job.first回报?文档说:"返回找到的第一个资源."
但是,看起来顺序是什么?
没有订单.您应该在了解ActiveRecord时查看日志,以查看正在生成的SQL.如果没有ORDER BY子句,则没有订单.您可能会发现您按照它们插入数据库的顺序返回记录,但这只是巧合,并且由于数据库服务器中的实现.除非存在ORDER BY,否则SQL结果将显式无序.
对于#first,在没有order子句的情况下也是随机的(至少,它在rails 3中).
您可以非常轻松地指定订单:
MyModel.order(:some_attr) # all records sorted by some_attr
MyModel.order(:some_attr).first # First record in sorted order
Run Code Online (Sandbox Code Playgroud)