Saltar al contenido

Ordenar y sort_by diferencia en Ruby on Rails ActiveRecord

Si te encuentras con algún detalle que no entiendes puedes dejarlo en la sección de comentarios y haremos todo lo necesario de ayudarte lo más rápido posible.

Solución:

sort_by se ejecuta en Ruby, por lo que si tiene un nil valor, las cosas se romperán de una manera similar a esta:

[3, nil, 1].sort
#=> ArgumentError: comparison of Fixnum with nil failed

order es ejecutado por su RDBMS, que generalmente funcionará bien con NULL valores. Incluso puede especificar dónde desea colocar el NULL VALUESañadiendo NULL FIRST (generalmente el predeterminado) o NULL LAST para usted ORDER BY ¿cláusula?

.sort_by es un método Ruby de Enumerable que se utiliza para ordenar matrices (o array como objetos). Usando .sort_by hará que todos los registros se carguen desde la base de datos a la memoria del servidor, lo que puede ocasionar serios problemas de rendimiento (así como su problema con los valores nulos).

.order es un método ActiveRecord que agrega un ORDER BY cláusula a la sentencia select de SQL. La base de datos se encargará de clasificar los registros. Esto es preferible en el 99% de los casos.

Si sostienes alguna sospecha y capacidad de enriquecer nuestro reseña te recomendamos realizar una referencia y con deseo lo observaremos.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *