, если @var уже имеет значение, которое не равно nil или false, вы можете использовать
@var &&= obj['blah']
но мне хотелось бы найти более простое решение, возможно, слияние хешей
если есть много значений.
, таких как:
obj = {:num_x => 23, :num_y => 75, :pe => 99}
locals = {:num_x => 1, :num_y => 2, :num_iterations => 3, :pe => 4}
puts locals.inspect #=> {:num_y=>2, :pe=>4, :num_iterations=>3, :num_x=>1}
locals.merge! obj
puts locals.inspect #=> {:num_y=>75, :pe=>99, :num_iterations=>3, :num_x=>23}
Который используется для настройки параметров во многих драгоценных камнях, которые я видел.