Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

How to access a attributes from the parent class?

2 views
Skip to first unread message

Paatsch, Bernd

unread,
Jan 24, 2006, 7:45:28 PM1/24/06
to
I am new to ruby and try to figure out how inheritance works.
I don't get the result I expect. I marked the line of code with "#error".
What do I need to do to get it to work?

class WacFrames
attr_reader :wacFrameNav
attr_reader :wacFrameDisp
def initialize()
@wacFrameNav = "nav"
@wacFrameDisp = "disp"
end
end

class WacSubscribers
attr_reader :fr
attr_reader :frame
def initialize()
@fr = WacFrames.new()
@frame = @fr.wacFrameNav
end
end

class WacSubProfile < WacSubscribers
def initialize()
#some code
end
end
end

another = WacSubscribers.new()
puts another.fr #works fine
puts another.frame #works fine

test = WacSubProfile.new()
puts test.fr #error
puts test.frame #error


Thanks

Gennady Bystritsky

unread,
Jan 24, 2006, 7:49:39 PM1/24/06
to
You must call super in WacSubProfile#initialize to invoke
WacSubscribers#initialize.

Gennady.

Eero Saynatkari

unread,
Jan 24, 2006, 9:18:49 PM1/24/06
to
Paatsch, Bernd wrote:
> I am new to ruby and try to figure out how inheritance works.
> I don't get the result I expect. I marked the line of code with
> "#error".
> What do I need to do to get it to work?
>
> <skip WacFrames />

>
> class WacSubscribers
> attr_reader :fr
> attr_reader :frame
> def initialize()
> @fr = WacFrames.new()
> @frame = @fr.wacFrameNav
> end
> end
>
> class WacSubProfile < WacSubscribers
> def initialize()
> #some code
> end
> end
> end

An extra 'end' there but I assume it is just a copy-paste error.

> another = WacSubscribers.new()
> puts another.fr #works fine
> puts another.frame #works fine
>
> test = WacSubProfile.new()
> puts test.fr #error
> puts test.frame #error

This should work fine (you might have problems if you
do not initialize the parent's instance variables by
calling #super but even still the methods should return
nils).

What error is it that you get?

> Thanks


E

--
Posted via http://www.ruby-forum.com/.


0 new messages