1

以下のハッシュを検討してください

[
{:rank => 3, :time => "3.00 AM" , :name => "JJJ"},
{:rank => 1, :time => "3.05 AM" , :name => "AAA"},
{:rank => 5, :time => "2.55 AM" , :name => "XXX"},
{:rank => 2, :time => "3.10 AM" , :name => "BBB"}
]

クエリのような結果が得られるように、フィールドを順番に並べ替えるにはどうすれ
ばよいですか(hasの値をフェッチするのはテーブルからであるかどうかを検討してください)

select * from my_table order by rank, time, name 

よくわからない場合はコメントしてください。

ありがとう

4

1 に答える 1

5
a = [
{:rank => 3, :time => "3.00 AM" , :name => "JJJ"},
{:rank => 1, :time => "3.05 AM" , :name => "AAA"},
{:rank => 5, :time => "2.55 AM" , :name => "XXX"},
{:rank => 2, :time => "3.10 AM" , :name => "BBB"}
]
res = a.sort_by{|t| [t[:rank], t[:time], t[:name]]}
于 2012-04-12T13:26:46.070 に答える