【发布时间】:2014-02-24 00:23:39
【问题描述】:
我正在尝试使用collect! 修改哈希数组。对于每个哈希,我想添加 1 个新键/值并修改不同的键/值。但是,我在使用sub! 修改现有哈希值时遇到问题。它似乎完全用一个等于子结果的数组条目替换了哈希!命令
paths = [{:path=>"bin/ruby/file1", :tag=>"v_10"}, {:path=>"usr/name/subdir/file2", :tag=>"v_12"}]
paths.collect! do |x|
x.merge(Hash[:file => x[:path].sub(/.*\//,"")]) # Grab file name
x[:path].sub!(/\/\w+$/,"") # remove file name from path
end
结果:=> ["bin/ruby", "usr/name/subdir"]
期望结果:=> [{:path=>"bin/ruby", :tag=>"v_10", :file=>"file1"}, {:path=>"usr/name/subdir", :tag=>"v_12", :file=>"file2"}]
【问题讨论】:
标签: ruby