関連BELONGS_TOレール、ときコレクションの一部の所有者の属性にアクセスすることはできませんか?
-
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、大丈夫、気にしません。問題は、ほとんどがやったのに、何らかの理由で、いくつかのボールオブジェクトが実際に(女の子を持っていなかったということでしたので、私が試した任意のボールがうまく働いたが、私はそれらのすべてを行うにしようとした場合、そのうちの一つが失敗すると、表示エラー場合にのみ、私は何かが間違っていたことを知らせ、ない)
所属していません StackOverflow