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:
Title |
Date |
Event |
<% @user.thing1.each do |c| %>
<%=h c.title %> |
<%=h c.date %> |
Thing2 |
<% c.thing2.each do |be| %>
<%=h be.workout_type %> |
<%=h be.thing3.name %>
<% end %>
|
<% 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
On 7 March 2010 00:26, ObjectEvolution [email protected]
wrote:
undefined method `name’ for nil:NilClass
I’m assuming this means there is no Thing3 object for this particular
Thing2 object.
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 %>