Rails 3: Wie lautet die Standardreihenfolge von "MyModel.all"?

9

Ich weiß, dass Job.all ein Array aller Jobs zurückgibt.

Aber was wäre die Reihenfolge?

Sind sie nach aufsteigendem id ?

geordnet?

Was Job.first zurückgibt? Die Dokumentation sagt: "Gibt die erste gefundene Ressource zurück."

Aber, was ist die Ordnung?

    
Misha Moroshko 04.03.2011, 11:24
quelle

4 Antworten

11

Eine ziemlich sichere Standardreihenfolge ist jedoch, dass die DB entschieden hat, sie zurückzugeben.

Siehe hier für weitere Informationen.

ActiveRecord Suchen Sie alle nicht nach ID?

Wenn Sie sie in einer bestimmten Reihenfolge möchten, sollten Sie Model.order ()

tun     
Doon 04.03.2011, 11:32
quelle
6

Es gibt keine Reihenfolge. Sie sollten Ihre Protokolle beobachten, während Sie mehr über ActiveRecord erfahren, um zu sehen, welche SQL-Daten generiert werden. Wenn es keine ORDER BY-Klausel gibt, gibt es keine Reihenfolge. Möglicherweise stellen Sie fest, dass Sie Datensätze in der Reihenfolge zurückerhalten, in der sie in die Datenbank eingefügt wurden. Dies ist jedoch nur zufällig und aufgrund der Implementierung im Datenbankserver der Fall. SQL-Ergebnisse sind explizit ungeordnet, wenn ORDER BY nicht vorhanden ist.

Wie für # zuerst, das ist auch ohne eine Reihenfolge Klausel zufällig (zumindest ist es in Schienen 3).

Sie können die Reihenfolge ganz einfach angeben:

%Vor%     
noodl 04.03.2011 11:34
quelle
3

Standardreihenfolge in Rails ist nicht definiert. Eigentlich kommt es auf die Datenbanken an.

    
Ashish 04.03.2011 11:37
quelle
-2

Ordnet die Ergebnisse in der Reihenfolge an, in der sie erstellt wurden (nicht bei created_at in Schienen).

    
Pravin 04.03.2011 11:42
quelle