Solo una pregunta, tengo una matriz con una matriz de ids array = [19, 5, 1, 4] cuando llamo a donde en ella Delivery.where(id: array.map(&:id)) para tener una relación de registro activa en lugar de una matriz, la declaración "dónde" está ordenando los identificadores y me da todos los objetos ordenados por identificadores: #<ActiveRecord::Relation [#<Delivery id: 1, ... >, #<Delivery id: 4, ... >, #<Delivery id: 5, ... >, #<Delivery id: 19, ... > ¿Alguien sabe cómo mantener el pedido original?
Gracias !
ActiveRecord.find , cuando se llama con una matriz, devolverá los registros exactamente en el mismo orden automáticamente.
Simplemente cambie su consulta a:
Delivery.find(array.map(&:id))Cita de los documentos :
NOTA: Los registros devueltos están en el mismo orden que las identificaciones que proporcionó. [...]