Маршрутизация для соответствия имени в единственном числе вместо множественного числа, сгенерированного ': resources' - PullRequest
2 голосов
/ 10 января 2011

В 'config / rout.Rb' моего приложения RoR3 у меня есть этот код

resources :users

, чтобы я мог перейти на http://application.local/users/2.

В любом случае, я бы хотелсоответствует ему http://application.local/user/2, но я не знаю, как изменить 'rout.rb', чтобы сделать это.

Может ли кто-нибудь мне помочь?

1 Ответ

11 голосов
/ 10 января 2011

Rails имеет единичные ресурсы , но они предназначены для маршрутов, на которые ссылается только одна запись / идентификатор (например, / profile, чтобы показать профиль пользователя, вошедшего в систему).

Если вам нужен обычный ресурс (который может принимать идентификаторы), то вы можете использовать :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"}
...