3

我有一个对象,球,它属于_一个女孩,它可以有_许多球。大多数情况下一切正常,但如果我尝试通过以下方式打印出女孩的名字:

@balls.each do |b|
    b.girl.name
end

我收到以下错误:

"undefined method `name' for nil:NilClass"

这真的让我很困惑。如果我说 b.girl.class,我将它作为 Girl 的一个实例,就好了。也就是说,它不是“NillClass”。

不仅如此,如果我只是尝试任何球,然后说

@ball.girl.name

我很好。

是什么让我搞砸了一系列球?

编辑:

具体来说,这在我看来正在发生。我现在正在做测试,看看它是否也发生在控制器中。

4

2 回答 2

5

您有一个Ball没有关联的实例Girl。在访问她的属性之前,您需要检查以确保这girl不是。nilname

@balls.each do |b|
  b.girl.name unless b.girl.nil? 
end
于 2010-03-09T17:57:20.853 回答
1

Dangit,好吧,没关系。问题是由于某种原因,一些 Ball Object 实际上并没有女孩(尽管大多数都有,所以我尝试过的任何给定 Ball 都可以正常工作,但如果我尝试全部都做,其中一个会失败,并且查看错误只让我知道出了什么问题,而不是在哪里)

于 2010-03-09T17:58:05.423 回答