Si desea agregar nuevos elementos desde otro hash, use el merge
método:
hash = {:item1 => 1}
another_hash = {:item2 => 2, :item3 => 3}
hash.merge(another_hash) # {:item1=>1, :item2=>2, :item3=>3}
En su caso específico podría ser:
hash = {:item1 => 1}
hash.merge({:item2 => 2}) # {:item1=>1, :item2=>2}
pero no es aconsejable usarlo cuando debería agregar solo un elemento más.
Presta atención que merge
reemplazará los valores con las claves existentes:
hash = {:item1 => 1}
hash.merge({:item1 => 2}) # {:item1=>2}
Exactamente como hash[:item1] = 2
También debe prestar atención a que el merge
método (por supuesto) no afecta el valor original de la variable hash: devuelve un nuevo hash combinado. Si desea reemplazar el valor de la variable hash, use merge!
en su lugar:
hash = {:item1 => 1}
hash.merge!({:item2 => 2})
# now hash == {:item1=>1, :item2=>2}
hash.merge!(item2: 2)
para fusionar y guardar el valor !