Undefined method `push' for Array:Class

hi there, I'm trying to add objects onto the end of an array and I'm
getting a NoMethodError with the message "undefined method `push' for
Array:Class". This makes no sense to me as "push" should be defined for
an Array...?

Any help would be great, thanks!

···

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

Array#push is an _instance_ method of the Array class, you need to
invoke it on array objects.

···

On Mon, Aug 25, 2008 at 9:45 PM, Amanda .. <a.etherton@hotmail.com> wrote:

hi there, I'm trying to add objects onto the end of an array and I'm
getting a NoMethodError with the message "undefined method `push' for
Array:Class". This makes no sense to me as "push" should be defined for
an Array...?

It seems your code is something like

Array.push 'a'

This doesn't work because push is an instance method of the Array class, that
is: you need to call it on an individual array (an instance of class Array),
not on the Array class itself. This is how you should do it:

a = Array.new

a.push 'string'

or

[1,2,3].push 4

(the syntax [1,2,3] creates an array, instance of class Array, containing the
items 1, 2 and 3).

I hope this helps

Stefano

···

On Monday 25 August 2008, Amanda .. wrote:

hi there, I'm trying to add objects onto the end of an array and I'm
getting a NoMethodError with the message "undefined method `push' for
Array:Class". This makes no sense to me as "push" should be defined for
an Array...?

Any help would be great, thanks!

Stefano Crocco wrote:

It seems your code is something like

Array.push 'a'

This doesn't work because push is an instance method of the Array class,
that is: you need to call it on an individual array (an instance of class
Array), not on the Array class itself. This is how you should do it:

a = Array.new

a.push 'string'

I hope this helps

Stefano

Thanks a lot, that's exactly what I needed to know :slight_smile:

···

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