Якщо ви хочете додати нові елементи з іншого хешу - використовуйте 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)
для об'єднання і збереження значення !