次の配列があります
a=[["kvm16", "one-415"], ["kvm16", "one-416"], ["kvm5", "one-417"]]
これを次のようなハッシュに変換したいと思います
{"kvm5"=>["one-417"], "kvm16"=>["one-417", "one-416"]}
私が試したことはすべて値を押しつぶします。
v=Hash[ a.collect do |p| [p[0], [ p[1] ] ] end ]
=> {"kvm5"=>["one-417"], "kvm16"=>["one-416"] }
v[p[0]] が配列かどうかを確認できると思っていましたが、このブロック内で変数が定義されていません。
私が探しているものを達成するためのきれいな方法はありますか?