Я пытаюсь вложить некоторые маршруты в пространство имен, аккаунт.
Я хочу управление пользователями под учетной записью, как /account/users
и /account/users/5/edit
В маршрутах .rb:
namespace :account do
resources :users do
member do
put 'generate_api_key'
end
collection do
post 'api_key'
end
end
end
Мои контроллеры не имеют пространства имен и не помещают их в какой-либо другой каталог.
/app
/controllers
accounts_controller.rb
users_controller.rb
В моей среде разработки это работает нормально, но на производстве я получаю 404 ответа на любой из /account/users...
путей (которые, кстати, все еще генерируются правильно: new_account_users_path
, edit_account_user_path
и т. Д.).
rake routes
генерирует одинаковый выходной сигнал в обеих средах. Вот соответствующий бит:
generate_api_key_account_user PUT /account/users/:id/generate_api_key(.:format) {:action=>"generate_api_key", :controller=>"account/users"}
api_key_account_users POST /account/users/api_key(.:format) {:action=>"api_key", :controller=>"account/users"}
account_users GET /account/users(.:format) {:action=>"index", :controller=>"account/users"}
POST /account/users(.:format) {:action=>"create", :controller=>"account/users"}
new_account_user GET /account/users/new(.:format) {:action=>"new", :controller=>"account/users"}
edit_account_user GET /account/users/:id/edit(.:format) {:action=>"edit", :controller=>"account/users"}
account_user GET /account/users/:id(.:format) {:action=>"show", :controller=>"account/users"}
PUT /account/users/:id(.:format) {:action=>"update", :controller=>"account/users"}
DELETE /account/users/:id(.:format) {:action=>"destroy", :controller=>"account/users"}
Учитывая, что маршруты, кажется, ищут контроллер Users
в подкаталоге /account
, я предполагаю, что мой вопрос - почему это работает в разработке?
Производство:
- Рельсы 3.0.7
- Пассажир
- Apache
Разработка:
Спасибо за ваши мысли по этому поводу.