На этот вопрос уже есть ответ здесь:
Меня интересует динамическая установка локальных переменных в Ruby. Не создавать методы, константы или переменные экземпляра.
Примерно так:
args[:a] = 1
args.each_pair do |k,v|
Object.make_instance_var k,v
end
puts a
> 1
Мне нужны локальные переменные специально, потому что рассматриваемый метод живет в модели, и я не хочу загрязнять глобальное или объектное пространство.