Я прочитал кое-что о слиянии хэшей с блоком, и это работает нормально для простых, не вложенных хэшей в обычном ruby.Следующий код приводит к {1=>2, 2=>4, 4=>6}
, как и ожидалось:
a = {1 => 1, 2 => 2, 4 => 3}
b = {1 => 1, 2 => 2, 4 => 3}
a.merge(b) { |key, value_a, value_b | value_a + value_b }
Но слияние не работает для вложенной хэш-структуры, я получаю NoMethodError (undefined method '+' for {1=>1, 2=>2}:Hash)
a = { "2018" => {1 => 1, 2 => 2, 4 => 3} }
b = { "2019" => {1 => 1, 2 => 2, 4 => 3} }
c = a.merge(b) { |key, value_a, value_b | value_a + value_b }
Я прочитало each_with_object , и я не уверен, как его использовать.Есть ли умный способ выполнить слияние значений подхеша?Как вы думаете, это самый простой способ?