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

Hi,

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

I had just run:     ruby script/generate scaffold vendor nickname:string qbname: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 WinXP-Pro/SP3

Thanks in Advance Richard

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”

-Jer

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 `vendor_path'    map.root :controller => "users" # Works    map.resources :users # No route matches "/" with {:method=>:get}    map.resources :vendors # No route matches "/" with {:method=>:get}

Also, the following both work, seemingly regardless of what routes are available     http://localhost:3000/users     http://localhost:3000/vendors

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 default.

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, Richard