This helps a lot. Guess I should brush up on my variable types :-) On May 27, 4:42 ¨Âí¬ ÂòéáÃáîäìå¼â®ãáîä®®®Àðïâïø®ãïí÷òïôåº > eggman2001 wrote: > > I've got something like: > > > @var = 'brown' > > This is an instance variable of the top-level (main) object. > > > class Foo < ActiveRecord::Base > > set_table_name @var > > end > > Now you're inside class Foo, @var is an instance variable of the Foo > class object (sometimes called a "class instance variable", but it's > just an instance variable like any other) > > > However, as the code is right now, I'm not able to access @var from > > within the class definition. Can someone tell me how I can accomplish > > this? > > (1) Horrible: > > class Foo < ActiveRecord::Base > set_table_name eval("@var", TOPLEVEL_BINDING) > end > > (2) Much better to use a local variable: > > var = 'brown' > Foo.set_table_name var > > That should work unless set_table_name is a private method. If it is, > then: > > (3) > var = 'brown' > Foo.class_eval { set_table_name var } > > You see that local variables propagate happily into blocks. It's only > 'class' and 'def' which start with a clean slate as far as local > variables are concerned. > -- > Posted viahttp://www.ruby-forum.com/.