From: Farrel Lifson Date: 2006-09-17T21:36:28+09:00 Subject: Re: Why don't these writable atributes work? On 17/09/06, Edward wrote: > Both of these code examples for making class properties don't work > although they are pretty much straight out of the book "Programming > Ruby". What I am doing wrong here? > > error is: undefined method `firstName' for # @firstName="Newton"> (NoMethodError) > ---------------------- > class User > > attr_writer :firstName > > def initialize(firstName) > @firstName = firstName > end > end > > user = User.new('Hal') > user.firstName = 'Newton' > print user.firstName > -------------------------------- > > class User > > def firstName=(newFirstName) > @firstName = newFirstName > end > > def initialize(firstName) > @firstName = firstName > end > end > > user = User.new('Hal') > user.firstName = 'Newton' > print user.firstName > > -------------------------------- > > Thanks, > > Edward Tanguay > All my projects: http://www.tanguay.info > > > 'attr_writer :firstName' only creates the 'firstName=' method just like 'attr_reader :firstName' will only create the 'firstName' method. What you need is 'attr_accessor :firstName' which creates both. Farrel