如何按名称属性对数组类进行排序?

kam*_*ett 1 ruby sorting ruby-on-rails

我在轨道上的ruby上有一个Relation类数组,我调用它 @relations

例:

@relations[0] {id => 13, name => 'Giovanni', age => 50}
@relations[1] {id => 25, name => 'Astolf', age => 27}
@relations[2] {id => 5, name => 'Bob', age => 37}
Run Code Online (Sandbox Code Playgroud)

我想根据名称对这个数组进行排序.它将如下所示:

@relations[0] {id => 25, name => 'Astolf', age => 27}
@relations[1] {id => 5, name => 'Bob', age => 37}
@relations[2] {id => 13, name => 'Giovanni', age => 50}
Run Code Online (Sandbox Code Playgroud)

我该怎么做?

Aru*_*hit 6

非常简单:

@relations = [{:id => 13, :name => 'Giovanni', :age => 50},
              {:id => 25, :name => 'Astolf', :age => 27},
              {:id => 5, :name => 'Bob', :age => 37}]

@relations.sort_by{|e| e[:name]}
# => [{:id=>25, :name=>"Astolf", :age=>27},
#     {:id=>5, :name=>"Bob", :age=>37},
#     {:id=>13, :name=>"Giovanni", :age=>50}]
Run Code Online (Sandbox Code Playgroud)