"generate scaffold" generated plural name in routes.rb -- why?


I ran:
I got:
    Routing Error
    No route matches "/" with {:method=>:get}

I had just run:
    ruby script/generate scaffold vendor nickname:string
    rename public\index.html to --index.html

I listed Config\routes.rb:
    ActionController::Routing::Routes.draw do |map|
       map.resources :vendors

I thought the plural "vendors" was odd, so I changed it to singular:
app ran fine.

Why did the plural version get generated? I'm running Rails 2.3.5 on

Thanks in Advance

When mapping resources you use the pluralized version, so you need to switch it back to vendors. You also need to map the root, other wise localhost:3000/ will not have a route defined. See this commented line in routes.rb

You can have the root of your site routed with map.root – just remember to delete public/index.html.

map.root :controller => “welcome”


Thanks for your response Jeremy,

Here's what I know now. With http://localhost:3000/ and the 2nd line
of routes.db successively:
   map.root :controller => "vendors" # undefined method
   map.root :controller => "users" # Works
   map.resources :users # No route matches "/" with {:method=>:get}
   map.resources :vendors # No route matches "/" with

Also, the following both work, seemingly regardless of what routes are

My next effort is to add a Home page with a side-bar of links to other
pages and kill all the root/resource entries except Home itself as the

Yet I wonder why controller => "vendors" fails despite the fact that
controller => "users" work, when I thing I created them in the same
manner. Do you have any idea? I expect there's not enough info to
let anyone to make a useful guess, so I'll just keep working to
eliminate the need for routes to vendors and users,

Again, thanks for your insights,