12
votes

Rails 3: Quel est l'ordre par défaut de "mymodel.all"?

Je sais que job.all renvoie un tableau de tous les travaux.

Mais, quel serait l'ordre?

sont-ils commandés par ascendance ID ?

Qu'est-ce que job.First retourne? La documentation indique: "Retourne la première ressource trouvée."

Mais, quel est le code de recherche?


0 commentaires

4 Réponses :


13
votes

L'ordre par défaut est Toutefois, la DB a décidé de les renvoyer.

voir ici pour plus d'informations.

Actioniverecord Trouver tout pas Tri par ID?

Si vous les voulez dans un ordre spécifique, vous devriez faire Model.Order ()


1 commentaires

Vous avez raison. MySQL True par l'ID, PostgreSQL renvoie les dernières entrées mis à jour en dernier (je pense). Et merci pour le lien, c'était ce que je cherchais. :)



6
votes

Il n'y a pas de commande. Vous devriez regarder vos journaux lors de l'apprentissage de ActiveRecord pour voir ce que SQL est généré. S'il n'y a pas d'ordre par clause, il n'y a pas d'ordre. Vous constaterez peut-être que vous récupérez les records dans l'ordre dans lequel ils ont été insérés dans la base de données, mais cela est simplement coïncident et dû à la mise en œuvre dans le serveur de base de données. Les résultats SQL sont explicitement désordonnés, sauf indication contraire de la commande.

comme pour #First, qui est également aléatoire sans clause de commande (au moins, il est dans des rails 3).

Vous pouvez spécifier la commande assez facilement: xxx


0 commentaires

3
votes

L'ordre par défaut dans les rails n'est pas défini. En fait, cela dépend des bases de données.


0 commentaires

-3
votes

Il commande les résultats dans la commande créée (non sur créé_at dans les rails).


0 commentaires