Welcome to the Treehouse Community
Want to collaborate on code errors? Have bugs you need feedback on? Looking for an extra set of eyes on your latest project? Get support with fellow developers, designers, and programmers of all backgrounds and skill levels here with the Treehouse Community! While you're at it, check out some resources Treehouse students have shared here.
Looking to learn something new?
Treehouse offers a seven day free trial for new students. Get access to thousands of hours of content and join thousands of Treehouse students and alumni in the community today.
Start your free trial

Julian McNeill
9,445 PointsHELP!!! I keep getting undefined method `full_name' for nil:NilClass
I've entered everything right according to the lesson but i keep getting this error
Extracted source (around line #9):
6:
7: <% @statuses.each do |status| %>
8: <div class="status">
9: <strong><%= status.user.full_name %></strong>
10: <p><%= status.content %></p>
11: <div class="meta">
12: <%= link_to time_ago_in_words(status.created_at) + " ago", status %>
this is my second time starting from scratch. I don't understand what I entered wrong. can one of the teachers please help cause i'm stuck.
2 Answers

Twiz T
12,588 PointsI think you don't have a user object to call the method full_name on. If there is no user object then the object you're calling the method full_name on is going to be nil. Which explains why you're getting a no method error for nil. Your full_name method is defined for your User class not Not Nil class.
Did you create a user, then create a status, then delete the user that created that status? I think this might work to get rid of the error but you would want to figure out why exactly this is happening.
Replace line 9 with this-
<%= status.try(:user).try(:full_name) %>
Not entirely sure you need that second try in there, try it both ways!
-twiz

Sammy Khaleel
914 PointsWe can solve that by the following create migration to give first_name and last_name a default value of " ".
def full_name first_name.to_s + " " + last_name.to_s end
that because ruby will give you an error if you have "nil +". then we need to run "rails generate migration " in the terminal if you are using Mac or CMD in windows.
Julian McNeill
9,445 PointsJulian McNeill
9,445 PointsThank you the code you gave me worked. how did you come up with that? I'm wondering why the code that was in the lesson wasn't working?
Twiz T
12,588 PointsTwiz T
12,588 PointsHey Julian here is where you can read up the try method http://apidock.com/rails/Object/try. Basically, instead of raising the error that you got above the it will evaluate to nil. This still means there is something up with the data. The code from treehouse should work but somehow a User may have gotten deleted.
For example, imagine 3 people lined up in a row facing you and each person has a button on their forehead that is called full name. Each time you press the button on their forehead the person says their full name out loud.
So, you press the button on the forehead of the first person and the person says, "Julian McNeil." Ok good. Then you press the button on the forehead of the second person and the person says, "Sally Reynolds." Good again. When you get to the 3rd person, there is no person. Just a button on the floor that says full name. You press the button anyways. Nothing. How can that person say their full name if there is no person? That 3rd person is nil. And you don't have method or button full_name defined for nil, only for people or Users, so you get the no method error.
twiz
Julian McNeill
9,445 PointsJulian McNeill
9,445 Pointsgot it thank you for explaining
Rick Champlin
11,072 PointsRick Champlin
11,072 PointsI used this answer to fix a problem I was having, but now it created a new one for me.
undefined method `+' for nil:NilClass
Line 15
Please help!
Rick Champlin
11,072 PointsRick Champlin
11,072 PointsI was having the same error and this fixed it...but now I have a new one.
undefined method `+' for nil:NilClass
It is still a problem with the :full_name issue.
Please help