Hi, I''ve been asked to create a controller called 2010 on rails 2.3.2 but script/generate controller 2010 fails with wrong constant name 2010Helper I tried creating everything manually, but still receive a ''wrong constant name'' error. NameError in 2010Controller#index wrong constant name 2010Controller So, is there any way to fix this up to get it to work? Thank you. Regards, Rich Here is a partial stack trace, btw. /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.1.1/lib/ active_support/inflector.rb:285:in `const_defined?'' /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.1.1/lib/ active_support/inflector.rb:285:in `constantize'' /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.1.1/lib/ active_support/inflector.rb:284:in `each'' /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.1.1/lib/ active_support/inflector.rb:284:in `constantize'' /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.1.1/lib/ active_support/core_ext/string/inflections.rb:143:in `constantize'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-2.1.1/lib/ action_controller/routing/route_set.rb:386:in `recognize'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-2.1.1/lib/ action_controller/dispatcher.rb:148:in `handle_request'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-2.1.1/lib/ action_controller/dispatcher.rb:107:in `dispatch'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-2.1.1/lib/ action_controller/dispatcher.rb:104:in `synchronize'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-2.1.1/lib/ action_controller/dispatcher.rb:104:in `dispatch'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-2.1.1/lib/ action_controller/dispatcher.rb:120:in `dispatch_cgi'' /usr/local/lib/ruby/gems/1.8/gems/actionpack-2.1.1/lib/ action_controller/dispatcher.rb:35:in `dispatch'' -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Ruby won''t let you make a class called 2010Controller, as it is not a valid class name. Why are you being told to create a controller of a specific name? Is it for path reasons? If so, call it something else (./script/generate controller twenty_ten) and then use a route to set things up from /2010/ to what you just made. --Michael On Wed, Dec 30, 2009 at 11:32, theduz <duzenbury-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> Hi, > > I''ve been asked to create a controller called 2010 on rails 2.3.2 but > script/generate controller 2010 fails with > > wrong constant name 2010Helper > > I tried creating everything manually, but still receive a ''wrong > constant name'' error. > > NameError in 2010Controller#index > > wrong constant name 2010Controller > > So, is there any way to fix this up to get it to work? > > Thank you. > > > Regards, > Rich > > > Here is a partial stack trace, btw. > /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.1.1/lib/ > active_support/inflector.rb:285:in `const_defined?'' > /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.1.1/lib/ > active_support/inflector.rb:285:in `constantize'' > /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.1.1/lib/ > active_support/inflector.rb:284:in `each'' > /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.1.1/lib/ > active_support/inflector.rb:284:in `constantize'' > /usr/local/lib/ruby/gems/1.8/gems/activesupport-2.1.1/lib/ > active_support/core_ext/string/inflections.rb:143:in `constantize'' > /usr/local/lib/ruby/gems/1.8/gems/actionpack-2.1.1/lib/ > action_controller/routing/route_set.rb:386:in `recognize'' > /usr/local/lib/ruby/gems/1.8/gems/actionpack-2.1.1/lib/ > action_controller/dispatcher.rb:148:in `handle_request'' > /usr/local/lib/ruby/gems/1.8/gems/actionpack-2.1.1/lib/ > action_controller/dispatcher.rb:107:in `dispatch'' > /usr/local/lib/ruby/gems/1.8/gems/actionpack-2.1.1/lib/ > action_controller/dispatcher.rb:104:in `synchronize'' > /usr/local/lib/ruby/gems/1.8/gems/actionpack-2.1.1/lib/ > action_controller/dispatcher.rb:104:in `dispatch'' > /usr/local/lib/ruby/gems/1.8/gems/actionpack-2.1.1/lib/ > action_controller/dispatcher.rb:120:in `dispatch_cgi'' > /usr/local/lib/ruby/gems/1.8/gems/actionpack-2.1.1/lib/ > action_controller/dispatcher.rb:35:in `dispatch'' > > -- > > You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. > To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en. > > >-- (Ruby, Rails, Random) blog: http://skandragon.blogspot.com/ -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
On Dec 30, 11:35 am, Michael Graff <skan.gryp...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> Ruby won''t let you make a class called 2010Controller, as it is not a > valid class name. > > Why are you being told to create a controller of a specific name? Is > it for path reasons? If so, call it something else (./script/generate > controller twenty_ten) and then use a route to set things up from > /2010/ to what you just made. > > --Michael > >Somebody wants the url to be http://example.com/2010/index.html. They didn''t say why, they just want it. I originally proposed a redirect in the web server, but they think they want /2010 in the address bar. I wondered if a route might be something to investigate, but I''m not 100% clear on how to reroute requests from /2010 to /twenty_ten. Will a special route take care that link_to :controller => ''twenty_ten'', :action => ''foo'' generates an html link like http://example.com/2010/foo ? Thank you. Regards, Rich -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
map.connect ''2010/:action'', :controller => ''twenty_ten'' If using resources, I think this will work: map.resource ''2010'', :controller => ''twenty_ten'' None of those are tested, but should be close I hope. --Michael On Wed, Dec 30, 2009 at 11:43, theduz <duzenbury-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> > > On Dec 30, 11:35 am, Michael Graff <skan.gryp...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: >> Ruby won''t let you make a class called 2010Controller, as it is not a >> valid class name. >> >> Why are you being told to create a controller of a specific name? Is >> it for path reasons? If so, call it something else (./script/generate >> controller twenty_ten) and then use a route to set things up from >> /2010/ to what you just made. >> >> --Michael >> >> > > Somebody wants the url to be http://example.com/2010/index.html. They > didn''t say why, they just want it. I originally proposed a redirect > in the web server, but they think they want /2010 in the address bar. > > I wondered if a route might be something to investigate, but I''m not > 100% clear on how to reroute requests from /2010 to /twenty_ten. Will > a special route take care that link_to :controller => > ''twenty_ten'', :action => ''foo'' generates an html link like > http://example.com/2010/foo ? > > Thank you. > > Regards, > Rich > > -- > > You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. > To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. > For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en. > > >-- (Ruby, Rails, Random) blog: http://skandragon.blogspot.com/ -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
try a controller named twenty_ten, and: map.resources :twenty_ten, :as => "2010" On Wed, Dec 30, 2009 at 12:43 PM, theduz <duzenbury-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> > > On Dec 30, 11:35 am, Michael Graff <skan.gryp...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: > > Ruby won''t let you make a class called 2010Controller, as it is not a > > valid class name. > > > > Why are you being told to create a controller of a specific name? Is > > it for path reasons? If so, call it something else (./script/generate > > controller twenty_ten) and then use a route to set things up from > > /2010/ to what you just made. > > > > --Michael > > > > > > Somebody wants the url to be http://example.com/2010/index.html. They > didn''t say why, they just want it. I originally proposed a redirect > in the web server, but they think they want /2010 in the address bar. > > I wondered if a route might be something to investigate, but I''m not > 100% clear on how to reroute requests from /2010 to /twenty_ten. Will > a special route take care that link_to :controller => > ''twenty_ten'', :action => ''foo'' generates an html link like > http://example.com/2010/foo ? > > Thank you. > > Regards, > Rich > > -- > > You received this message because you are subscribed to the Google Groups > "Ruby on Rails: Talk" group. > To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To unsubscribe from this group, send email to > rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org<rubyonrails-talk%2Bunsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org> > . > For more options, visit this group at > http://groups.google.com/group/rubyonrails-talk?hl=en. > > >-- // anything worth taking seriously is worth making fun of // http://blog.devcaffeine.com/ -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.
Now that I read your words a bit more closely, I think you are confused about what a route is and what a controller is. By convention, this configuration: map.resource :foo means "things like /foo/action will go to controller foo" but that is not required. It is merely convention. Like many things in Rails, you can change things, but it requires configuration to do it. In this case, map.resource ''2010'', :controller => ''foo'' should be close. It says "I don''t care what you think you want when you see /2010, but I want it handled by the controller ''foo'' instead." Note that this does not mean that /foo exists, although if you leave your default routes in it will. However, the more specific should take priority and you should be good to go. --Michael On Wed, Dec 30, 2009 at 11:43, theduz <duzenbury-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote:> > > On Dec 30, 11:35 am, Michael Graff <skan.gryp...-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org> wrote: >> Ruby won''t let you make a class called 2010Controller, as it is not a >> valid class name. >> >> Why are you being told to create a controller of a specific name? Is >> it for path reasons? If so, call it something else (./script/generate >> controller twenty_ten) and then use a route to set things up from >> /2010/ to what you just made. >> >> --Michael >> >> > > Somebody wants the url to be http://example.com/2010/index.html. They > didn''t say why, they just want it. I originally proposed a redirect > in the web server, but they think they want /2010 in the address bar. > > I wondered if a route might be something to investigate, but I''m not > 100% clear on how to reroute requests from /2010 to /twenty_ten. Will > a special route take care that link_to :controller => > ''twenty_ten'', :action => ''foo'' generates an html link like > http://example.com/2010/foo ? > > Thank you. > > Regards, > Rich > > -- > > You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. > To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org > To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. > For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en. > > >-- (Ruby, Rails, Random) blog: http://skandragon.blogspot.com/ -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To post to this group, send email to rubyonrails-talk-/JYPxA39Uh5TLH3MbocFF+G/Ez6ZCGd0@public.gmane.org To unsubscribe from this group, send email to rubyonrails-talk+unsubscribe@googlegroups.com. For more options, visit this group at http://groups.google.com/group/rubyonrails-talk?hl=en.