我有一个order_states表。
我有不同的客户,他们的州有不同的标签。
我正在以这样的哈希方式抓住所有客户端及其状态:
"client one" => {"shipped" => "state_zay", "ordered" => "state_bla"},
"client two" => {"shipped" => "state_bar", "ordered" => "state_foo"}
常量看起来像这样:
ordered, shipped
结果如下:
"client one" => {"ordered" => "state_bla", "shipped" => "state_zay"},
"client two" => {"ordered" => "state_foo", "shipped" => "state_bar"}
注意:我不希望按字母顺序或数字顺序排序。
我希望有一个代表状态正确顺序的参赛者,然后根据该常数订购密钥。
如何做到这一点?
答案 0 :(得分:0)
您可以通过这样做实现所需的输出
hash = {"client one"=>{"ordered"=>"state_bla", "shipped"=>"state_zay"},
"client two"=>{"ordered"=>"state_foo", "shipped"=>"state_bar"}}
hash.each do |key,value|
hash[key] = value.sort_by{|key,value| value}.to_h
end
puts hash # This will be the sorted hash