合并ruby哈希并添加键

合并ruby哈希并添加键,ruby,hash,Ruby,Hash,我有两个具有相同密钥的哈希 {1=>2, 2=>450, 3=>3} 及 我想把它们合并到这个 { 1=> {:number => 2, :string => '1232'}, 2=>{:number => 450, :string => 'ffsa'}, 3=>{:number => 3, :string => 'vdsvds'} } 从第一个散列中获取子项'number'的值,从第二个散列中获取子项's

我有两个具有相同密钥的哈希

{1=>2, 2=>450, 3=>3}

我想把它们合并到这个

{
  1=> {:number => 2, :string => '1232'},
  2=>{:number => 450, :string => 'ffsa'}, 
  3=>{:number => 3, :string => 'vdsvds'}
}
从第一个散列中获取子项
'number'
的值,从第二个散列中获取子项
'string'
的值。实现这一目标的最佳方法是什么?

以下是一种方法:

h1 = {1=>2, 2=>450, 3=>3}
h2 = {1=>'1232', 2=>'ffsa', 3=>'vdsvds'}

h1.merge(h2) { |_, o, n| { number: o, string: n } }
# => {
#      1=>{:number=>2, :string=>"1232"},
#      2=>{:number=>450, :string=>"ffsa"},
#      3=>{:number=>3, :string=>"vdsvds"}
#     }

啊,你比我快!考虑到Arup的答案是唯一的答案,你似乎喜欢它,你应该考虑检查它。
h1 = {1=>2, 2=>450, 3=>3}
h2 = {1=>'1232', 2=>'ffsa', 3=>'vdsvds'}

h1.merge(h2) { |_, o, n| { number: o, string: n } }
# => {
#      1=>{:number=>2, :string=>"1232"},
#      2=>{:number=>450, :string=>"ffsa"},
#      3=>{:number=>3, :string=>"vdsvds"}
#     }