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

**URL:** <https://www.ruby-forum.com/t/generate-scaffold-generated-plural-name-in-routes-rb-why/184429>\
**Category:** Rails\
**Created:** [March 2, 2010, 2:31pm UTC](https://www.ruby-forum.com/t/generate-scaffold-generated-plural-name-in-routes-rb-why/184429 "2010-03-02T14:31:58Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![RichardOnRails](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/e0b2c6/32.png) [@RichardOnRails](https://www.ruby-forum.com/u/RichardOnRails)\
**Post date:** [March 2, 2010, 2:31pm UTC](https://www.ruby-forum.com/t/generate-scaffold-generated-plural-name-in-routes-rb-why/184429/1 "2010-03-02T14:31:58Z")

</div>

Hi,

I ran:  
[http://localhost:3000/](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

---

<div class="post-metadata">

**Author:** ![RichardOnRails](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/e0b2c6/32.png) [@RichardOnRails](https://www.ruby-forum.com/u/RichardOnRails)\
**Post date:** [March 2, 2010, 2:40pm UTC](https://www.ruby-forum.com/t/generate-scaffold-generated-plural-name-in-routes-rb-why/184429/2 "2010-03-02T14:40:10Z")

</div>

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

On Tue, Mar 2, 2010 at 8:30 AM, RichardOnRails \<

---

<div class="post-metadata">

**Author:** ![RichardOnRails](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/r/e0b2c6/32.png) [@RichardOnRails](https://www.ruby-forum.com/u/RichardOnRails)\
**Post date:** [March 2, 2010, 6:49pm UTC](https://www.ruby-forum.com/t/generate-scaffold-generated-plural-name-in-routes-rb-why/184429/3 "2010-03-02T18:49:33Z")

</div>

Thanks for your response Jeremy,

Here’s what I know now. With [http://localhost:3000/](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/users)  
[http://localhost:3000/vendors](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
