路由以匹配单数名称而不是':resources'生成的复数

时间:2011-01-10 05:07:30

标签: ruby-on-rails resources routing ruby-on-rails-3

在我的RoR3应用程序的'config / routes.rb'中,我有这段代码

resources :users

这样我就可以转到http://application.local/users/2

无论如何我想匹配它http://application.local/user/2,但我不知道如何更改'routes.rb'来做到这一点。

有人能帮助我吗?

1 个答案:

答案 0 :(得分:11)

Rails确实有singular resources但它们适用于只有一个记录/ id被引用的路由(例如/ profile以显示登录用户的个人资料)。

如果您需要普通资源(可以接受ID),那么您可以使用:path来更改路线的外观:

resources :users, :path => "user"

会给你这些路线:

    users GET    /user(.:format)                    {:controller=>"users", :action=>"index"}
          POST   /user(.:format)                    {:controller=>"users", :action=>"create"}
 new_user GET    /user/new(.:format)                {:controller=>"users", :action=>"new"}
edit_user GET    /user/:id/edit(.:format)           {:controller=>"users", :action=>"edit"}
     user GET    /user/:id(.:format)                {:controller=>"users", :action=>"show"}
          PUT    /user/:id(.:format)                {:controller=>"users", :action=>"update"}
          DELETE /user/:id(.:format)                {:controller=>"users", :action=>"destroy"}