2017-09-06 64 views
0

在红宝石哈希我有有数据类似的哈希:增加值在轨道上

details = [{ 
    :project_name=>"ABC", :project_id=>12345, :total_count=>1, 
    :stories=>[#<TrackerApi::Resources::Story id=987654>] 
}, { 
    :project_name=>"XYZ", :project_id=>54321, :total_count=>1, 
    :stories=>[#<TrackerApi::Resources::Story id=123456>] 
}] 

我要插入的数据如另一个数组:

sorter_Version = [["Abc ", "30 August 2017"], ["Not Accepted", "30 August 2017"]] 

详细散列,但不知何故无法做到这一点。有人可以帮助我。提前感谢。

输出应该是这样的:

details = [{ 
     :project_name=>"ABC", :project_id=>12345, :total_count=>1, 
     :stories=>[#<TrackerApi::Resources::Story id=987654>], 
     :sorter_version=>["Abc ","30 August 2017"] 
    }, { 
     :project_name=>"XYZ", :project_id=>54321, :total_count=>1, 
     :stories=>[#<TrackerApi::Resources::Story id=123456>], 
     :sorter_version=>["Not Accepted ","30 August 2017"] 
    }]  
+1

_ “不知何故没能做到这一点” _ - 可以告诉你你的方法,你有什么尝试?有错误还是意想不到的结果? – Stefan

+0

@Stefan我试了一下details.push(sorter_version),然后它终于贴上了。但那不是我想要的。 –

+0

您遇到问题的代码是什么?你的代码有什么问题?你有错误信息吗?什么是错误信息?你得到的结果不是你期待的结果吗?你期望得到什么结果?为什么?你得到的结果是什么?两者有什么不同?你正在观察的行为不是所期望的行为?什么是期望的行为,为什么,观察到的行为是什么,以及它们以何种方式不同?请提供[mcve]。 [所以]不是“写我的代码给我的服务”!如果您正在寻找*那*,聘请程序员。 –

回答

1

只需使用each_with_index

details.each_with_index { |d, i| d[:sorter_version] = sorter_Version[i] } 
#=> [{:project_name=>"ABC", :project_id=>12345, :total_count=>1, 
#  :stories=>["#<TrackerApi::Resources::Story id=987654>"], 
#  :sorter_version=>["Abc ", "30 August 2017"]}, 
# {:project_name=>"XYZ", :project_id=>54321, :total_count=>1, 
#  :stories=>["#<TrackerApi::Resources::Story id=123456>"], 
#  :sorter_version=>["Not Accepted", "30 August 2017"]}] 

永恒版本:

details.map.with_index { |d, i| d.merge(sorter_version: sorter_Version[i]) }