# HELP -- I'm missing something

**URL:** <https://www.ruby-forum.com/t/help-im-missing-something/174096>\
**Category:** Rails\
**Created:** [August 20, 2009, 7:53pm UTC](https://www.ruby-forum.com/t/help-im-missing-something/174096 "2009-08-20T19:53:09Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![spokra](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ba8739/32.png) [@spokra](https://www.ruby-forum.com/u/spokra)\
**Post date:** [August 20, 2009, 7:53pm UTC](https://www.ruby-forum.com/t/help-im-missing-something/174096/1 "2009-08-20T19:53:09Z")

</div>

in application controller

@upcomingevents = Event.all

in application layout

\<% @upcomingevents.each do |upcomingevent| %\>  
\<%= upcomingevent.name %\>  
\<% end %\>

there are events… but i get an error of

ActionView::TemplateError (undefined method `each’ for nil:NilClass)  
on line #77 of app/views/layouts/application.html.erb:  
74: \<%= content\_tag :p, msg, :class =\> key, :id =\> key -%\>  
75: \<% end -%\>  
76:  
77: \<% @upcomingevents.each do |upcomingevent| %\>  
78: \<%= upcomingevent %\>  
79: \<% end %\>  
80:

---

<div class="post-metadata">

**Author:** ![spokra](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ba8739/32.png) [@spokra](https://www.ruby-forum.com/u/spokra)\
**Post date:** [August 20, 2009, 7:59pm UTC](https://www.ruby-forum.com/t/help-im-missing-something/174096/2 "2009-08-20T19:59:35Z")

</div>

It would guess that Event.all returned nil. Did you mean to say  
Event.find(:all) ?

---

<div class="post-metadata">

**Author:** ![spokra](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ba8739/32.png) [@spokra](https://www.ruby-forum.com/u/spokra)\
**Post date:** [August 20, 2009, 9:26pm UTC](https://www.ruby-forum.com/t/help-im-missing-something/174096/3 "2009-08-20T21:26:48Z")

</div>

2009/8/20 spokra [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid):

> 78: \<%= upcomingevent %\>  
> 79: \<% end %\>  
> 80:

In this sort of situation where one cannot see the cause of the  
problem by inspection I use ruby-debug to break into the controller  
and the view to check the value of variables. This usually gives  
useful clues.

Colin

---

<div class="post-metadata">

**Author:** ![spokra](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ba8739/32.png) [@spokra](https://www.ruby-forum.com/u/spokra)\
**Post date:** [August 20, 2009, 9:27pm UTC](https://www.ruby-forum.com/t/help-im-missing-something/174096/4 "2009-08-20T21:27:59Z")

</div>

I;ve tried both ways of selecting the data… and the log shows select

- from events… and doing the find in the console works fine.

---

<div class="post-metadata">

**Author:** ![spokra](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ba8739/32.png) [@spokra](https://www.ruby-forum.com/u/spokra)\
**Post date:** [August 20, 2009, 9:42pm UTC](https://www.ruby-forum.com/t/help-im-missing-something/174096/5 "2009-08-20T21:42:37Z")

</div>

Drrr make a function… and call it with a before filter…

---

<div class="post-metadata">

**Author:** ![spokra](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ba8739/32.png) [@spokra](https://www.ruby-forum.com/u/spokra)\
**Post date:** [August 20, 2009, 8:41pm UTC](https://www.ruby-forum.com/t/help-im-missing-something/174096/6 "2009-08-20T20:41:41Z")

</div>

James E. wrote:

> It would guess that Event.all returned nil. Did you mean to say  
> Event.find(:all) ?

In recent versions of Rails, those two are equivalent. (Of course, we  
don’t know what version the OP is using…)

## Best,

Marnen Laibow-Koser  
[http://www.marnen.org](http://www.marnen.org)  
removed\_email\_address@domain.invalid

---

<div class="post-metadata">

**Author:** ![spokra](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/ba8739/32.png) [@spokra](https://www.ruby-forum.com/u/spokra)\
**Post date:** [August 20, 2009, 10:32pm UTC](https://www.ruby-forum.com/t/help-im-missing-something/174096/7 "2009-08-20T22:32:57Z")

</div>

Well since Event.all should have returned an array and not thrown an  
error, my guess is there is a problem with your model/database. Go  
into the terminal and open up a session using script/console, at the  
prompt enter Event.all and see what it returns…
