Если вы хотите добавить новые элементы из другого хэша - используйте merge
метод:
hash = {:item1 => 1}
another_hash = {:item2 => 2, :item3 => 3}
hash.merge(another_hash) # {:item1=>1, :item2=>2, :item3=>3}
В вашем конкретном случае это может быть:
hash = {:item1 => 1}
hash.merge({:item2 => 2}) # {:item1=>1, :item2=>2}
но не стоит использовать его, когда нужно добавить еще один элемент.
Обратите внимание, что merge
заменит значения на существующие ключи:
hash = {:item1 => 1}
hash.merge({:item1 => 2}) # {:item1=>2}
в точности как hash[:item1] = 2
Также следует обратить внимание, что merge
метод (конечно) не влияет на исходное значение хеш-переменной - он возвращает новый объединенный хеш. Если вы хотите заменить значение хеш-переменной, используйте merge!
вместо этого:
hash = {:item1 => 1}
hash.merge!({:item2 => 2})
# now hash == {:item1=>1, :item2=>2}
hash.merge!(item2: 2)
для объединения и сохранения значения !