(未定义的方法`+ @'表示[]:数组)

时间:2009-09-16 03:03:53

标签: ruby-on-rails arrays

当我尝试迭代对象数组时,我收到一条非常奇怪的错误消息。错误是

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

这是该循环的代码。

#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

我的代码中没有+ @。奇怪

3 个答案:

答案 0 :(得分:11)

Ruby中没有++运算符。

错误信息实际上非常清楚:它表示您的Array类型实例不存在名为“+ @”的方法。 '+ @'是一元加实例方法的实际名称,该方法是为数字类型定义的,但不是为数组定义的。

答案 1 :(得分:0)

我今天遇到了类似的错误。

NoMethodError (undefinded method `-@' for []:Array)

我已将HAML文档中的%w数组声明复制粘贴到ruby控制台中以验证其格式,但没有注意到我在开始时就包含了-

答案 2 :(得分:0)

在添加2个数组时放置=+而不是+=时出现此错误