У меня есть движок Rails 3, предназначенный для базовой аутентификации и авторизации пользователей.В пределах этого самоцвета config/routes.rb
определяет следующее
resources :users
match '/:controller(/:action(/:id))'
Когда я делаю rake routes
из приложения, которое требует этот драгоценный камень, я получаю следующие маршруты
rake routes|grep users
users GET /users(.:format) {:controller=>"users", :action=>"index"}
users POST /users(.:format) {:controller=>"users", :action=>"create"}
new_user GET /users/new(.:format) {:controller=>"users", :action=>"new"}
edit_user GET /users/:id/edit(.:format) {:controller=>"users", :action=>"edit"}
user GET /users/:id(.:format) {:controller=>"users", :action=>"show"}
user PUT /users/:id(.:format) {:controller=>"users", :action=>"update"}
user DELETE /users/:id(.:format) {:controller=>"users", :action=>"destroy"}
Вот чтоЯ ожидаю.
Однако, когда я пытаюсь получить доступ к следующим маршрутам через браузер
/users/137
/users/137/edit
Я получаю следующую ошибку в журналах
AbstractController::ActionNotFound (The action '137' could not be found for UsersController):
actionpack (3.0.0) lib/abstract_controller/base.rb:114:in `process'
actionpack (3.0.0) lib/abstract_controller/rendering.rb:40:in `process'
...
Что интересноявляется то, что следующие пути работают
/users/show/137
/users/edit/137
Также, если я добавлю следующее в файл rout.rb в приложении, которое требует гем, все это работает как положено.
resources :users
Есть ли что-то, чего мне не хватает или это ошибка?
Обратите внимание, что я также делаю следующее, когда я запускаю свое приложение из командной строки, когда я запускаю рельсы, я устанавливаю следующую переменную env
RAILS_RELATIVE_URL_ROOT="/my_app"
и в config.ru
map '/my_app' do
run MSEL::Application
end