Я использую Rails 3.x с Passenger, и у меня возникают проблемы с пониманием того, как правильно установить префикс приложения так, чтобы оно понимало, - как маршрутизировать URL-адреса, начинающиеся с префикса, - как генерировать пути так, чтобы онис префиксом / foo
Другие спрашивали об этом (например, здесь ), однако у меня все еще нет полной картины.
До Пассажира,Я запускал шавки с RAILS_RELATIVE_URL_ROOT , который инициализирует ActionController :: Base.config.relative_url_root, который позволяет Rails генерировать пути к активам с правильным префиксом.Кроме того, я определял все свои маршруты, например,
MyApp::Application.routes.draw do
scope ActionController::Base.config.relative_url_root do
...
end
end
, что позволяет Rails правильно маршрутизировать и генерировать URL-адреса.
При переключении в режим «Пассажир» я устанавливаю passenger_base_uri (на языке nginx), как описано в Документах для пассажиров.Затем пассажир устанавливает относительный_url_root, который позволяет Rails генерировать пути к ресурсам.Пассажир также, кажется, удаляет префикс из URL перед передачей его в Rails.Поэтому я должен удалить область маршрутизации, чтобы иметь URL-адреса маршрутов Rails.НО удаление области также препятствует тому, чтобы Rails правильно генерировал URL.
Итак, как я могу заставить Rails генерировать правильные пути?Чего мне не хватает?