I can't see anything wrong. Does this work?
list.append(Song.new('title1', 'artist1', 1))
It would help me if you wrote a sample program that caused the error and
sent it to me. I can then try to figure out what's going on.
On Wed, Feb 19, 2003 at 09:31:21AM +0900, reavey wrote:
> hi
> I get an error
> "NameError: undefined method 'push' for nil from append"
> as I'm working thru the Prag prog ruby book.
> """We'll start our class with a basic initialize method, which creates
> the Array we'll use to hold our songs and store a reference to it in the
> instance variable @songs
>
> class SongList
> def initialize
> @songs = Array.new
> end
> end
>
> The SongList#append method adds the given song to the end of teh @songs
> array. It also
> returns self, a reference to the current SongList object. This is a
> useful convention, as it allows us to chain together multiple calls to
> appand...
>
> class Songlist
> def append(aSong)
> @songs.push(aSong)
> self
> end
> end
>
> list = SongList.new
> list.
> append(Song.new('title1', 'artist1', 1)).
> append(Song.new('title2', 'artist2', 2)) """
>
> reports the error.
> I've worked through all the example code and have been very impressed.
> It is
> very instructive and is the only book I've seen that tries to teach
> using a real model.
>
> I'm writting all the code in irb. Also, a test like
> cSong = Song.new('title', 'artist', 245)
> works fine.
>
>
>
>
--
Daniel Carrera
Graduate Teaching Assistant. Math Dept.
University of Maryland. (301) 405-5137