القضبان ينتمي إلى جمعية، لا يمكن الوصول إلى سمات المالك عند جزء من مجموعة؟
-
18-09-2019 - |
سؤال
لدي كائن، الكرة، التي تنتمي إلى فتاة، والتي يمكن أن تحتوي على كرات. كل شيء يعمل في معظمها، ولكن إذا حاولت طباعة اسم الفتيات عبر:
@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، حسنا، لا تمانع أبدا. كانت القضية أنه لسبب ما لم يكن لدى بعض كائن الكرة فعلا الفتيات (على الرغم من أن معظمهم فعلوا ذلك، فما فعلت أي كرة معينة جربتها بشكل جيد، ولكن إذا حاولت أن أفعل كل منهم، فسوف يفشل أحدهم، وعرض طريقة العرض فقط اسمحوا لي أن أعرف أن هناك خطأ ما، وليس أين)