Velocity Reviews

Velocity Reviews (http://www.velocityreviews.com/forums/index.php)
-   Ruby (http://www.velocityreviews.com/forums/f66-ruby.html)
-   -   Why can not set value to instance variable of Class? (http://www.velocityreviews.com/forums/t864537-why-can-not-set-value-to-instance-variable-of-class.html)

iMelody Ooo 09-23-2010 03:23 AM

Why can not set value to instance variable of Class?
 
class ParaList
attr_reader:classname
attr_writer:paralist
def initialize(name)
@classname = name
@paralist = Hash.new
end
end

$cellparalist = ParaList.new("AAA")

def MmlParse.addpara(paraclass,mo,mmlparalist)
a = Hash.new
a = paraclass.paralist
#Error:in `addpara': undefined method `paralist' for #<ParaList:0xc6eff5
b = Hash.new
b["AAA"]=100;
a = b
}
--
Posted via http://www.ruby-forum.com/.


Tony Arcieri 09-23-2010 03:40 AM

Re: Why can not set value to instance variable of Class?
 
[Note: parts of this message were removed to make it a legal post.]

You've defined an attr_writer for :paralist, but need an attr_reader for it
in order for the method you are calling to be defined. You probably want to
change attr_writer to attr_reader, or use attr_accessor if you really want
it to still be writable. attr_writer defines a separate method called
paralist=. You can call that method using paraclass.paralist = foobar.

On Wed, Sep 22, 2010 at 9:23 PM, iMelody Ooo <imelody@msn.com> wrote:

> class ParaList
> attr_reader:classname
> attr_writer:paralist
> def initialize(name)
> @classname = name
> @paralist = Hash.new
> end
> end
>
> $cellparalist = ParaList.new("AAA")
>
> def MmlParse.addpara(paraclass,mo,mmlparalist)
> a = Hash.new
> a = paraclass.paralist
> #Error:in `addpara': undefined method `paralist' for #<ParaList:0xc6eff5
> b = Hash.new
> b["AAA"]=100;
> a = b
> }
> --
> Posted via http://www.ruby-forum.com/.
>
>



--
Tony Arcieri
Medioh! A Kudelski Brand



All times are GMT. The time now is 10:23 PM.

Powered by vBulletin®. Copyright ©2000 - 2014, vBulletin Solutions, Inc.
SEO by vBSEO ©2010, Crawlability, Inc.