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/.