From: Wilson Bilkovich Date: 2006-10-17T11:42:44+09:00 Subject: Re: dynamically assigning instance variables (redux) On 10/16/06, Bil Kleb wrote: > I need a modern answer to Daniel Berger's 2002 post, > > http://blade.nagaokaut.ac.jp/cgi-bin/scat.rb/ruby/ruby-talk/39534 > > Is there a way to dynamically assign instance variables? > > class SomeClass > def initialize(hash) > hash.each do |key,val| > @#{key} = val # Doesn't work > end > end > end > Here's one way: http://rubyquiz.com/quiz67.html If you just want to set instance variables, you can do: def initialize(has) hash.each do |key,val| instance_variable_set "@#{key}", val end end