# Nil object problem

**URL:** <https://www.ruby-forum.com/t/nil-object-problem/174714>\
**Category:** Rails\
**Created:** [August 31, 2009, 9:06pm UTC](https://www.ruby-forum.com/t/nil-object-problem/174714 "2009-08-31T21:06:42Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![acgreen](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/3bc359/32.png) [@acgreen](https://www.ruby-forum.com/u/acgreen)\
**Post date:** [August 31, 2009, 9:06pm UTC](https://www.ruby-forum.com/t/nil-object-problem/174714/1 "2009-08-31T21:06:42Z")

</div>

This is a repost as I had zero replies to my first email. This problem  
is  
driving me mad but it has to be a simple solution that I just can;t see.

Can someone please tell me what the difference is between the following  
bits  
of code …

\<% @swimming\_class.lessons.each do |lesson| %\>  
\<% lesson.lesson\_register.attendees.each do |att| %\>  
\<%= att.enrollee\_id %\>  
  
  
\<% end %\>  
\<% end %\>

\<% @swimming\_class.lessons.each do |lesson| %\>  
\<% lesson.lesson\_register.attendees[0].enrollee\_id %\>  
\<% end %\>

Thsnk you

–  
The sun comes up and we start again

---

<div class="post-metadata">

**Author:** ![acgreen](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/3bc359/32.png) [@acgreen](https://www.ruby-forum.com/u/acgreen)\
**Post date:** [August 31, 2009, 9:07pm UTC](https://www.ruby-forum.com/t/nil-object-problem/174714/2 "2009-08-31T21:07:18Z")

</div>

On Aug 31, 7:57 pm, Anthony G. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> ```
> <br />
> 
> ```
> 
> \<% lesson.lesson\_register.attendees[0].enrollee\_id %\>  
> \<% end %\>

if a lesson register has no attendees the second snippet will try to  
access it anyway whereas the first won’t

Fred

---

<div class="post-metadata">

**Author:** ![acgreen](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/3bc359/32.png) [@acgreen](https://www.ruby-forum.com/u/acgreen)\
**Post date:** [August 31, 2009, 9:19pm UTC](https://www.ruby-forum.com/t/nil-object-problem/174714/3 "2009-08-31T21:19:01Z")

</div>

Frederick,

Thanks for getting back but you’re missing the point, they’re working  
on  
the same data.

The .each block iterates over the data correctly but the same data  
throws  
the nil object error when I index the item.

That’s the problem.

-Ants

2009/8/31 Frederick C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

> > You have a nil object when you didn’t expect it!
> 
> Fred
> 
> > Thsnk you
> > 
> > –  
> > The sun comes up and we start again

–  
100% naturally selected. 0% designed.

---

<div class="post-metadata">

**Author:** ![acgreen](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/3bc359/32.png) [@acgreen](https://www.ruby-forum.com/u/acgreen)\
**Post date:** [August 31, 2009, 9:23pm UTC](https://www.ruby-forum.com/t/nil-object-problem/174714/4 "2009-08-31T21:23:42Z")

</div>

On Aug 31, 8:16 pm, Anthony G. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> Frederick,
> 
> Thanks for getting back but you’re missing the point, they’re working on  
> the same data.

I realise.

> The .each block iterates over the data correctly but the same data throws  
> the nil object error when I index the item.

If the array is empty then each will be a no-op, unlike accessing [0].  
Sounds like somewhere there is an item with no attendees.

Fred

---

<div class="post-metadata">

**Author:** ![acgreen](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/a/3bc359/32.png) [@acgreen](https://www.ruby-forum.com/u/acgreen)\
**Post date:** [August 31, 2009, 9:49pm UTC](https://www.ruby-forum.com/t/nil-object-problem/174714/5 "2009-08-31T21:49:27Z")

</div>

Yes, you’re right!

I won’t go into where the mistake was but although the problem was in  
the  
code I submitted, the error (just my way of thinking, was in another  
part of  
the code)

So what you said got me thinking and I addressed another part of the  
code  
and found the error.

Merci!!

2009/8/31 Frederick C. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

> > -Ants
> > 
> > > > This is a repost as I had zero replies to my first email. This  
> > > > \<% @swimming\_class.lessons.each do |lesson| %\>
> > 
> > > > Thsnk you
> > 
> > > > –  
> > > > The sun comes up and we start again
> > 
> > –  
> > 100% naturally selected. 0% designed.

–  
100% naturally selected. 0% designed.
