URL-адреса префикса в приложении Rails - PullRequest
5 голосов
/ 16 января 2011

Я хочу, чтобы все мои страницы в моем приложении Rails 2.3 имели префикс URL:

www.example.com/app/

и я написал это в routes.rb следующие строки:

# I named the first part of the url ':appl'
map.root :appl => "app", :controller => "home"

# Default routes
map.connect ':appl/:controller/:action/:id'
map.connect ':appl/:controller/:action/:id.:format'

Все отлично работает, за исключением map.resources, где у меня

map.resources :pages

и теперь, где бы у меня не было edit_page_path или page, сгенерированные URL не являются правильными, потому что app не вставляется в начале Я пробовал с namespace и scope, как я видел здесь, в главе 2.6 , но безуспешно.

Как мне это сделать? Является ли :appl на маршрутах плохой идеей?

Ответы [ 2 ]

6 голосов
/ 17 января 2011

Если вы развертываете на Passenger, вам просто нужно установить (в конфигурации вашего веб-сервера):

RailsBaseURI /app

А затем в конфигурации вашего приложения:

config.action_controller.relative_url_root = '/app'

Тебе не нужно беспокоиться о каких-либо других вещах, кроме этого.Это должно просто работать.См. Пассажирская документация для получения более подробной информации.

Для монгрел вы можете использовать опцию --prefix

script/server mongrel -P /app
0 голосов
/ 06 февраля 2011

Вот как я писал в routes.rb:

map.resources :pages,   :as => 'app/pages'

Теперь edit_page_path и другие возвращают верный путь с префиксом 'app'

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...