2013-11-16 5 views
0

Я хочу назначить разные маршруты в зависимости от внутренней настройки. Простой if здесь не работает, так как routes.rb оценивается только при изменении/запуске. Я хочу перенаправить все запросы на страницу обслуживания, если выполняется техническое обслуживание без изменения текущего URL-адреса.Условная маршрутизация

ответ

1

В ApplicationController вы можете иметь фильтр before, который отображает шаблон обслуживания. Он должен выглядеть примерно так:

class ApplicationController < ActionController::Base 
    before_filter :show_maintenance_page 

    private 

    def show_maintenance_page 
    render 'common/maintenance' if maintenance? # you have to define maintenance? 
    end 
end 
+0

Я предполагаю, что возвращаемое значение заставляет его как-то не продолжать дальше. В противном случае спасибо :) – Kilobyte

+1

Фактически, когда перед фильтром создается шаблон или перенаправляет его, он останавливает запрос. –

3

Вы можете установить действие в ApplicationController как before_filter, чтобы проверить переменную окружения и, если это установлено, render шаблон обслуживания. Это не должно влиять на текущий URL.

Смежные вопросы