Rails belongs_to关联,在收集的一部分时无法访问所有者的属性?

Jen*_*nny 3 ruby ruby-on-rails belongs-to

我有一个对象,球,属于一个女孩,可以有很多球.一切都有效,但如果我尝试通过以下方式打印出女孩的名字:

@balls.each do |b|
    b.girl.name
end
Run Code Online (Sandbox Code Playgroud)

我收到以下错误:

"undefined method `name' for nil:NilClass"
Run Code Online (Sandbox Code Playgroud)

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

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

@ball.girl.name
Run Code Online (Sandbox Code Playgroud)

我很好.

那些让我搞砸的球的集合是什么?

编辑:

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

Aar*_*nni 5

您的实例Ball没有关联Girl.您需要检查以确保在访问其属性之前girl不会.nilname

@balls.each do |b|
  b.girl.name unless b.girl.nil? 
end
Run Code Online (Sandbox Code Playgroud)