The error occurred while evaluating nil.to_sym


#1

Hello guys,

I’ve been developing in Ruby for a few months and I am starting to
work with Rails. I am having a problem right from the start and I
think I am not doing anything wrong. I have performed the following
steps:

  1. run rails test
  2. run script/server and it works perfectly connecting to the database
    without problems (sqllite)
  3. run script/generate scaffold release_notes title:string
    version:string content:text
  4. rake db:migrate
  5. shutdown the server and start it again
  6. http://localhost:3000/release_notes/new and it works just fine
  7. After I click on create I get the error below. I have checked that
    removing all the “link_to” entries the error disappear. any ideas?
    what am I forgetting?

NoMethodError in Release_notes#index
Showing release_notes/index.html.erb where line #15 raised:

You have a nil object when you didn’t expect it!
The error occurred while evaluating nil.to_sym

Extracted source (around line #15):

12:

<%=h release_notes.title %>
13: <%=h release_notes.version %>
14: <%=h release_notes.content %>
15: <%= link_to ‘Show’, release_notes %>
16: <%= link_to ‘Edit’, edit_release_notes_path(release_notes)
%>
17: <%= link_to ‘Destroy’, release_notes, :confirm => ‘Are you
sure?’, :method => :delete %>
18:

RAILS_ROOT: /Users/gacilu/Knowledge Administration/Koiaka Project/
Projects/F1/Development/Iteration4/code/iqserver

Application Trace | Framework Trace | Full Trace
/usr/local/jruby-1.1.4/lib/ruby/gems/1.8/gems/actionpack-2.1.1/lib/
action_controller/routing/route.rb:145:in extra_keys' /usr/local/jruby-1.1.4/lib/ruby/gems/1.8/gems/actionpack-2.1.1/lib/ action_controller/routing/route.rb:145:inmap’
/usr/local/jruby-1.1.4/lib/ruby/gems/1.8/gems/actionpack-2.1.1/lib/
action_controller/routing/route.rb:145:in extra_keys' generated code (/usr/local/jruby-1.1.4/lib/ruby/gems/1.8/gems/ actionpack-2.1.1/lib/action_controller/routing/route.rb:45):3:ingenerate’
/usr/local/jruby-1.1.4/lib/ruby/gems/1.8/gems/actionpack-2.1.1/lib/
action_controller/routing/route.rb:122:in generate' /usr/local/jruby-1.1.4/lib/ruby/gems/1.8/gems/actionpack-2.1.1/lib/ action_controller/routing/route_set.rb:337:ingenerate’
/usr/local/jruby-1.1.4/lib/ruby/gems/1.8/gems/actionpack-2.1.1/lib/
action_controller/url_rewriter.rb:131:in rewrite_path' /usr/local/jruby-1.1.4/lib/ruby/gems/1.8/gems/actionpack-2.1.1/lib/ action_controller/url_rewriter.rb:110:inrewrite_url’
/usr/local/jruby-1.1.4/lib/ruby/gems/1.8/gems/actionpack-2.1.1/lib/
action_controller/url_rewriter.rb:88:in rewrite' /usr/local/jruby-1.1.4/lib/ruby/gems/1.8/gems/actionpack-2.1.1/lib/ action_controller/base.rb:622:inurl_for’
/usr/local/jruby-1.1.4/lib/ruby/gems/1.8/gems/actionpack-2.1.1/lib/
action_view/helpers/url_helper.rb:71:in url_for' (eval):17:inrelease_notes_path’
app/views/release_notes/index.html.erb:15:in
_run_erb_47app47views47release_notes47index46html46erb' app/views/release_notes/index.html.erb:10:ineach’
app/views/release_notes/index.html.erb:10:in
_run_erb_47app47views47release_notes47index46html46erb' app/controllers/release_notes_controller.rb:7:inindex’
:1:in `initialize’

Thanks,

GA


#2

this should have a path
<%= link_to ‘Show’, release_notes %>
like
<%= link_to ‘Show’, release_note_path(release_notes) %>
or whatever you defined in your routes


#3

Thanks for your answer.
I have not defined anything in the routes yet. If I did not do any
changes,
shouldn’t the generated file work from the beginning?

GA


#4

I have the same probleme, but the route is setted :
“map.ressources :myaction”

First all methods *_action_path don’t work (unknow by RoR) but they were
created by scaffolding so it’s supposed to exist ??

And if I use the trick “release_note_path(release_notes)” instead of
just use linkto the object, I have this f***cking error too :
“You have a nil object when you didn’t expect it!
The error occurred while evaluating nil.to_sym”

I just found a topic talking about it
(http://www.hostingrails.com/1029/undefined-method-to_sym-for-nilNilClass-error-)
but the guy seems to give up and put all links without linkto. But for
my apps the probleme is every where and not just for one action.

Really strange …


#5

Hi Benoit,

On Mon, 2009-06-15 at 01:36 +0200, Benoit M. wrote:

I have the same probleme, but the route is setted :
“map.ressources :myaction”

You sure the spelling error above hasn’t found its way into your code?

Best regards,
Bill


#6

I have to stop drugs really …
Last night I used something like ./script/generate scaffold nameS …
If I put an S on the scaffold name, every thing is weel generated except
the model who take an ‘S’. I suppose that’s why RoR failed so badly.

But it’s strange because ‘controller’path was working instead of
edit
’controller’path and delete’controller’_path were unknew by RoR.

Anyway, thank you for the help. I were not able to find this ‘S’ by my
self.


#7
  1. run script/generate scaffold release_notes title:string
    version:string content:text

Try like
./script/generate scaffold ReleaseNote title:string version:string
content:text