Ordenar array de hashes

Hola buenas, tengo un array de hashes, por ejemplo:

array=Array.new
arr=Hash.new
arr={:id=>3,:nombre=>“d”}
array<<arr
arr={:id=>2, :nombre=>“b”}
array<<arr
arr={:id=>1, :nombre=>“a”}
array<<arr
Al final array vale:
[{:id=>3, :nombre=>“d”}, {:id=>2, :nombre=>“b”}, {:id=>1, :nombre=>“a”}]

Mi pregunta es cómo puedo ordenar este array por el campo ‘nombre’ para
que me quede:
[{:id=>1, :nombre=>“a”}, {:id=>2, :nombre=>“b”}, {:id=>3, :nombre=>“d”}]

Alguna sugerencia? Gracias

hola,

Mi pregunta es cómo puedo ordenar este array por el campo ‘nombre’ para
que me quede:
[{:id=>1, :nombre=>“a”}, {:id=>2, :nombre=>“b”}, {:id=>3, :nombre=>“d”}]

usando sort

tu_array.sort{|x,y| x[:name] <=> y[:name]}

saludos,

javier ramírez

javier ramirez
escribió:>

Muchas gracias :slight_smile:

tu_array.sort{|x,y| x[:name] <=> y[:name]}

o sort_by {|elem| elem[:name]}

y si estas en Rails y el orden es por un metodo especifico (y no un
elemento de un hash) puedes hacer (bueno, en teoria, no lo he probado)

sort_by(&:name)