Using the value of a variable as another variables name in Ruby

Posted by hrickards on Stack Overflow See other posts from Stack Overflow or by hrickards
Published on 2010-03-27T17:01:53Z Indexed on 2010/03/27 17:03 UTC
Read the original article Hit count: 260

Hi,

I'm just starting out in learning Ruby and I've written a program that generates some numbers and assigns them to variables @one, @two, @three etc. The user can then specify a variable to change by inputting it's name (e.g one). I then need to do something like '@[valueofinout] = asd'. How would I do this, and is there a better way as the way I'm thinking of seems to be discouraged? I've found

x = "myvar"
myvar = "hi"
eval(x) -> "hi"

but I don't completely understand why the second line is needed. In my case would I use something like

@one = "21"
input = "one"
input = "@" + input
changeto = "22"
eval(input) -> changeto

Thanks

© Stack Overflow or respective owner

Related posts about ruby

Related posts about dynamic-variables