使用基于特定键的哈希元素对数组进行排序

Raf*_*afa 7 ruby-on-rails ruby-on-rails-3

@cases => [{"name"=>"25 Cases per 60 day", "count"=>0},
 {"name"=>"30 Cases for 60 days", "count"=>8},
 {"name"=>"10 Cases per 60 days", "count"=>5}]
Run Code Online (Sandbox Code Playgroud)

如果我有一个包含先前结果的对象,我该如何按countDESC顺序排序?要获取实例变量,cases我做了

ClassName.all.collect{|e| {'name' => e.name, 'count' => e.contracts.count}}
Run Code Online (Sandbox Code Playgroud)

Phr*_*ogz 16

sorted = @cases.sort_by{ |hash| hash['count'] }.reverse
sorted = @cases.sort_by{ |hash| -hash['count'] }
sorted = @cases.sort_by{ |hash| -(hash['count'] || 0) }
Run Code Online (Sandbox Code Playgroud)

第一个是最简单的.

第二个是我会做的.

第三个是如果某些哈希值缺少"计数"值,你可以做什么.