Displaying Nested Objects

Hi,

I've got a question regarding my models in my Rails app. Let's say I have an object:

User

which has_many:

Thing1

and Thing1 has_many:

Thing2

and Thing2 has_one:

Thing3

When I go to display this in my template, like this:

<table border="1">   <tr>     <th>Title</th>     <th>Date</th>     <th>Event</th>   </tr>

<% @user.thing1.each do |c| %>   <tr>         <td><%=h c.title %></td>   <td><%=h c.date %></td>   <td>     <table>       <tr>         <th>Thing2</th>       </tr>     <% c.thing2.each do |be| %>       <tr>         <td>                                        <%=h be.workout_type %></td>                <%=h be.thing3.name %>                                 </td>       </tr>     <% end %>     </table>   </td>   </tr> <% end %>

I get:

undefined method `name' for nil:NilClass

I'm assuming this means there is no Thing3 object for this particular Thing2 object.

I just bought Agile Development with Rails and am starting to go through that...it's surely noob question but can someone set me straight?

Thanks!

Jon

you're quite correct - there's no "thing3" linked to a given "thing 2". If there *supposed* to be an associated object there, then something's gone wrong when you've created your objects, but if it's a case that there may or may not be a Thing3, then a simple "guard" would suffice.

<%=h be.thing3.name if be.thing3 %>

Perfect...thanks!