2011-03-04 16 views

Respuesta

10

Bastante seguro es que el orden predeterminado es sin embargo el DB decidió devolverlos.

Consulte aquí para obtener más información.

ActiveRecord Find All not sorting by ID?

Si los quieres en un orden específico, que debe hacer Model.order()

+0

Tienes razón. MySQL ordena por ID, PostgreSQL devuelve las últimas entradas actualizadas al último (creo). Y gracias por el enlace, eso era lo que estaba buscando. :) – iGEL

6

no hay orden. Debería ver sus registros mientras aprende acerca de ActiveRecord para ver qué SQL se está generando. Si no hay una cláusula ORDER BY, no hay orden. Puede encontrar que recupera los registros en el orden en que se insertaron en la base de datos, pero eso es solo una coincidencia y debido a la implementación dentro del servidor de la base de datos. Los resultados de SQL están desordenados explícitamente a menos que ORDER BY esté presente.

En cuanto a #first, también es aleatorio sin una cláusula de orden (al menos, está en los rieles 3).

puede especificar el orden con bastante facilidad:

MyModel.order(:some_attr) # all records sorted by some_attr 
MyModel.order(:some_attr).first # First record in sorted order 
+0

bueno para los carriles 3.2 –

3

orden predeterminado en Rails no está definido. En realidad, depende de las bases de datos.

-2

Ordena los resultados en el orden creado (no en created_at en rieles).

Cuestiones relacionadas