views:

68

answers:

1

Hey Everyone, I'm getting a very strange error message when I try to iterate through an array of objects. The error is

NoMethodError (undefined method `+@' for []:Array):

Here is the code of that loop.

#go through items and see if there are any corresponding offers 
 #All matches are stored in a hash
 items.each do |itemsi|
  bestoffer = -1
  matchescounter++ #matchescounter only get incredmented when all the offers have been taken care of
  offers.each do |offs|
  if itemsi.togive.to_str == offs.totake.to_str
   if offs.togive.to_int > bestoffer
    bestoffer = offs.togive.to_int
    matches[matchescounter].store(itemi, offer)   
   end#if
  end#if
  end#offers loop
 end#items loop

I don't have +@ anywhere in my code. Strange

+4  A: 

There is no ++ operator in Ruby.

And the error message is actually quite clear: it says that the method named '+@' does not exist for your instance of the Array type. '+@' is the actual name of the unary plus instance method, which is defined for the Numeric type, but not for Array.

JRL
use += 1 instead
erik
Thanks, that was my java getting back into my head.
Pat R