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

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