向数组的数组中添加对象



我正试图将对象添加到数组数组中,但当我这样做时,我在数组单元测试数组中收到错误,说明:- " nil:NilClass的未定义方法'has_key' "。然而,如果我尝试添加一个字符串或数字到数组的数组,它绝对工作得很好。

我像这样创建数组的数组

@array_of_array= Array.new(5) { Array.new(3) }

现在如果我尝试这样做

@array_of_array[0][0] = MyObject.new

然后,如果我运行我的单元测试@array_of_array,我得到错误。

但是如果我尝试这样做

@array_of_array[0][0] = 'Test'

没问题。

——编辑——

测试失败

it "should place object in correct starting position" do
array_of_array= Array.new(5) { Array.new(3) }
array_of_array[1][0] = MyObject.new
array_of_array.should eql('fail on purpose..want to see output')

结束

我新的ruby,所以不确定我哪里错了。由于

就像Claw说的,这个错误可能意味着您的MyObject.new语句由于某种原因返回了一个nil对象。然后你试图调用那个nil对象的'has_key'函数。

你的MyObject类抛出异常,如果你使用.new!而不是.new ?如果是,你可以看到为什么它不能返回一个正确的MyObject对象。

编辑

要在MyObject模型的'new'方法中捕获异常,可以这样做:

def new
    begin
        #whatever is done in this method
    rescue => exception
        puts exception.message
    end
end

相关内容

  • 没有找到相关文章

最新更新