我知道Job.all
返回所有作業的數組。Rails 3:「MyModel.all」的默認順序是什麼?
但是,順序是什麼?
它們是按升序排列id
?
什麼Job.first
返回?該文檔說:「返回找到的第一個資源。」
但是,看的順序是什麼?
我知道Job.all
返回所有作業的數組。Rails 3:「MyModel.all」的默認順序是什麼?
但是,順序是什麼?
它們是按升序排列id
?
什麼Job.first
返回?該文檔說:「返回找到的第一個資源。」
但是,看的順序是什麼?
可以肯定的是,默認順序是DB決定返回它們。
查看此處瞭解更多信息。
ActiveRecord Find All not sorting by ID?
如果你想他們在一個特定的順序,你應該做的Model.order()
沒有訂單。您應該在瞭解ActiveRecord的同時觀察日誌,以查看正在生成的SQL。如果沒有ORDER BY子句,則沒有訂單。您可能會發現將記錄重新插入到數據庫的順序,但這只是巧合而已,並且是由於在數據庫服務器中的實現。 SQL結果顯式無序,除非ORDER BY存在。
至於#第一,這也是隨機的,沒有訂單條款(至少,它在軌道3)。
你可以很容易地指定的順序:Rails中
MyModel.order(:some_attr) # all records sorted by some_attr
MyModel.order(:some_attr).first # First record in sorted order
良好的軌道3.2 – 2017-05-10 18:19:03
默認順序沒有定義。實際上它取決於數據庫。
它以創建的訂單(而不是在軌道上的created_at
)中訂購結果。
你說得對。 MySQL按ID排序,PostgreSQL最後返回最後更新的條目(我認爲)。感謝您的鏈接,這正是我一直在尋找的。 :) – iGEL 2011-08-25 10:02:14