[lnkForumImage]
TotalShareware - Download Free Software

Confronta i prezzi di migliaia di prodotti.
Asp Forum
 Home | Login | Register | Search 


 

Forums >

comp.lang.ruby

Class variables

Perry Smith

9/22/2007 12:33:00 AM

I must have a fundamental misunderstanding of Ruby. I am hoping someone
here can help. This is the essence of what I am doing. I am doing this
inside Ruby On Rails so it may be that Rails is doing something I don't
know about. But here is what I am doing:

class SubClass1 < ParentClass
@@var = "hello1"
end

class SubClass2 < ParentClass
@@var = "hello2"
end

class SubClass3 < ParentClass
@@var = "hello3"
end

class ParentClass
def foo
puts @@var
end
end

i = SubClass1.new
i.foo()

The call to foo and the puts will print out what appears to be a random
value. Sometimes it is "hello1" but other times it is not. It is
always one of the strings, especially when going through Rails and
interacting with the web server, it seems random which string will print
out.

What am I missing here? This seems pretty obvious and straight forward.

Thank you for your help,
pedz
--
Posted via http://www.ruby-....

1 Answer

Phrogz

9/22/2007 3:06:00 AM

0

On Sep 21, 6:32 pm, Perry Smith <p...@easesoftware.com> wrote:
> I must have a fundamental misunderstanding of Ruby. I am hoping someone
> here can help. This is the essence of what I am doing. I am doing this
> inside Ruby On Rails so it may be that Rails is doing something I don't
> know about. But here is what I am doing:

Please search the mailing list archives, and/or read the (free) online
books about it. You will find many, many discussions over how class
variables work when inheritance is involved (hint: they're shared),
and many, many suggestions that in most cases you really want class
instance variables (which are not shared between parent/subclasses).