Если вместо этого вы можете использовать переменную экземпляра, существует Object#instance_variable_set
.
def baz(symbol)
instance_variable_set("@#{symbol}_bar", 42)
end
Обратите внимание, что он принимает только те имена переменных, которые могут быть приняты в качестве переменной экземпляра (начиная с @
).Если вы введете что-либо еще в первый аргумент, он вернет ошибку.Для аналога глобальной переменной здесь есть обсуждение: Форум: Ruby
В любом случае, у вас также есть проблема доступа к переменной.Как ты собираешься это сделать?