関連BELONGS_TOレール、ときコレクションの一部の所有者の属性にアクセスすることはできませんか?

StackOverflow https://stackoverflow.com/questions/2411040

  •  18-09-2019
  •  | 
  •  

質問

私はボールをhave_manyできガール、BELONGS_TOオブジェクト、ボールを持っています。すべては大部分が動作しますが、私は経由女の子の名前をプリントアウトしようとした場合:

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

私は次のエラーを取得する:

"undefined method `name' for nil:NilClass"

どの本当に私を混乱。私はb.girl.classを言うなら、私は、女の子のインスタンスとしてうまくそれを得ます。つまり、それは "NillClass" ではありません。

それだけではなく、私はただのボールのためにそれを試してみてください、と言うならば、

@ball.girl.name

私は完全に罰金です。

それは私を台無しにされたボールのコレクションについては何ですか?

編集ます:

具体的にこれが私の見解で起こっています。私はそれがあまりにも、コントローラに起こるかどうかを確認するために、今テストをやってます。

役に立ちましたか?

解決

あなたは関連するBallを持っていませんGirlのインスタンスを持っています。あなたはgirl前に彼女nil属性にアクセスするにはnameされていないことを確認してくださいしたいと思う。

@balls.each do |b|
  b.girl.name unless b.girl.nil? 
end

他のヒント

Dangit、大丈夫、気にしません。問題は、ほとんどがやったのに、何らかの理由で、いくつかのボールオブジェクトが実際に(女の子を持っていなかったということでしたので、私が試した任意のボールがうまく働いたが、私はそれらのすべてを行うにしようとした場合、そのうちの一つが失敗すると、表示エラー場合にのみ、私は何かが間違っていたことを知らせ、ない)

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top