How Should I Fix a NoMethodError?

I am getting a NoMethodError in the show.rhtml file around an
@story.user.login variable. But I checked the controller and the
rhtml file and it looks like things are ok. This is the error message:

NoMethodError in Story#show

Showing app/views/story/show.rhtml where line #20 raised:

You have a nil object when you didn't expect it!
The error occurred while evaluating nil.login
Extracted source (around line #20):

17: </p>
18: <p class="submitted_by">
19: Submitted by:
20: <%= @story.user.login %>
21: </p>
22: <div id="vote_link">
23: <%= link_to_remote 'shove it',
RAILS_ROOT: script/../config/..

Application Trace | Framework Trace | Full Trace
#{RAILS_ROOT}/app/views/story/show.rhtml:20:in
`_run_rhtml_47app47views47story47show46rhtml'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.2/lib/action_view/
base.rb:326:in `send'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.2/lib/action_view/
base.rb:326:in `compile_and_render_template'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.2/lib/action_view/
base.rb:301:in `render_template'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.2/lib/action_view/
base.rb:260:in `render_file'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.2/lib/
action_controller/base.rb:806:in `render_file'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.2/lib/
action_controller/base.rb:711:in `render_with_no_layout'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.2/lib/
action_controller/layout.rb:247:in `render_without_benchmark'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.2/lib/
action_controller/benchmarking.rb:50:in `render'
/usr/local/lib/ruby/1.8/benchmark.rb:293:in `measure'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.2/lib/
action_controller/benchmarking.rb:50:in `render'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.2/lib/
action_controller/base.rb:1096:in `perform_action_without_filters'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.2/lib/
action_controller/filters.rb:632:in `call_filter'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.2/lib/
action_controller/filters.rb:634:in `call_filter'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.2/lib/
action_controller/filters.rb:638:in `call_filter'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.2/lib/
action_controller/filters.rb:438:in `call'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.2/lib/
action_controller/filters.rb:637:in `call_filter'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.2/lib/
action_controller/filters.rb:619:in `perform_action_without_benchmark'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.2/lib/
action_controller/benchmarking.rb:66:in
`perform_action_without_rescue'
/usr/local/lib/ruby/1.8/benchmark.rb:293:in `measure'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.2/lib/
action_controller/benchmarking.rb:66:in
`perform_action_without_rescue'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.2/lib/
action_controller/rescue.rb:83:in `perform_action'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.2/lib/
action_controller/base.rb:430:in `send'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.2/lib/
action_controller/base.rb:430:in `process_without_filters'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.2/lib/
action_controller/filters.rb:624:in
`process_without_session_management_support'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.2/lib/
action_controller/session_management.rb:114:in `process'
/usr/local/lib/ruby/gems/1.8/gems/actionpack-1.13.2/lib/
action_controller/base.rb:330:in `process'
/usr/local/lib/ruby/gems/1.8/gems/rails-1.2.2/lib/dispatcher.rb:41:in
`dispatch'
/usr/local/lib/ruby/gems/1.8/gems/rails-1.2.2/lib/webrick_server.rb:
113:in `handle_dispatch'
/usr/local/lib/ruby/gems/1.8/gems/rails-1.2.2/lib/webrick_server.rb:
79:in `service'
/usr/local/lib/ruby/1.8/webrick/httpserver.rb:104:in `service'
/usr/local/lib/ruby/1.8/webrick/httpserver.rb:65:in `run'
/usr/local/lib/ruby/1.8/webrick/server.rb:173:in `start_thread'
/usr/local/lib/ruby/1.8/webrick/server.rb:162:in `start'
/usr/local/lib/ruby/1.8/webrick/server.rb:162:in `start_thread'
/usr/local/lib/ruby/1.8/webrick/server.rb:95:in `start'
/usr/local/lib/ruby/1.8/webrick/server.rb:92:in `each'
/usr/local/lib/ruby/1.8/webrick/server.rb:92:in `start'
/usr/local/lib/ruby/1.8/webrick/server.rb:23:in `start'
/usr/local/lib/ruby/1.8/webrick/server.rb:82:in `start'
/usr/local/lib/ruby/gems/1.8/gems/rails-1.2.2/lib/webrick_server.rb:
63:in `dispatch'
/usr/local/lib/ruby/gems/1.8/gems/rails-1.2.2/lib/commands/servers/
webrick.rb:59
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
`gem_original_require'
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
`require'
/usr/local/lib/ruby/gems/1.8/gems/activesupport-1.4.1/lib/
active_support/dependencies.rb:495:in `require'
/usr/local/lib/ruby/gems/1.8/gems/activesupport-1.4.1/lib/
active_support/dependencies.rb:342:in `new_constants_in'
/usr/local/lib/ruby/gems/1.8/gems/activesupport-1.4.1/lib/
active_support/dependencies.rb:495:in `require'
/usr/local/lib/ruby/gems/1.8/gems/rails-1.2.2/lib/commands/server.rb:
39
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
`gem_original_require'
/usr/local/lib/ruby/site_ruby/1.8/rubygems/custom_require.rb:27:in
`require'
script/server:3
Request

Parameters: {"permalink"=>"my-shiny-weblog"}

Show session dump

Response

Headers: {"cookie"=>[], "Cache-Control"=>"no-cache"}

essentially your @story doesn’t have a user. Either force the story to have a user, or add a condition to your printout statement.

<%= @story.user.login unless @story.user.nil? %>

you will receive this message any time you try to call a method against a nil object so it is important to either assign a blank user to your story any time you view this page, or start checking that the user isn’t nil, like the sample above.

Ok. . . and I am really new here, but first where would I find my
"printout statement" and second, I raked my databases and got a rake
aborted! uninitialized constant CreateUse as a result. Are these two
issues related? Thanks for your help.

Wow.. . . that worked! I replaced your line with mine in the rhtml.
But I am still curious about the rake thing. Thanks.

when I say printout statement, I’m referring to any time that you use <%= “something” %> since it prints a result to your html.

as far as your rake problem goes, it sounds like maybe your rake file isn’t named correctly. if your file name is 001_create_users.rb, within that file the class name must be CreateUsers. most likely your file is named (ignoring the version number) 001_create_use.rb, so it’s looking for a class name of CreateUse within the file. you need to make sure that the class name and file name agree.