我有两个哈希。如何将这两者合并为一个哈希?
hash_one = {3=>{"pre_event_sales_count"=>-12}}
hash_two = {3=>{"sold_count"=>-12}}
我希望它看起来像这样:
{3 => {"sold_count"=>-12, "pre_event_sales_count"=>-12}}
答案 0 :(得分:1)
遍历第一个哈希的所有键,如果第二个哈希中存在键,则将其合并到第一个哈希:
hash_one.keys.each{ |k| hash_one[k].merge!(hash_two[k]) if hash_two[k] }
现在hash_one
是:{3=>{"pre_event_sales_count"=>-12, "sold_count"=>-12}}
答案 1 :(得分:0)
使用深度合并
require "active_support/core_ext/hash"
hash_one.deep_merge(hash_two)
答案 2 :(得分:0)
hash_one.merge!(hash_two)
将hash_two
放入hash_one
并覆盖任何重复项。