القضبان ينتمي إلى جمعية، لا يمكن الوصول إلى سمات المالك عند جزء من مجموعة؟

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

  •  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، حسنا، لا تمانع أبدا. كانت القضية أنه لسبب ما لم يكن لدى بعض كائن الكرة فعلا الفتيات (على الرغم من أن معظمهم فعلوا ذلك، فما فعلت أي كرة معينة جربتها بشكل جيد، ولكن إذا حاولت أن أفعل كل منهم، فسوف يفشل أحدهم، وعرض طريقة العرض فقط اسمحوا لي أن أعرف أن هناك خطأ ما، وليس أين)

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top