2015-06-13 6 views
3

У меня есть промежуток промежуточного программного обеспечения Rails, и у меня есть часть MW вне ActionDispatch. В идеале я хотел бы отобразить страницу с помощью ActionDispatch, вызывая URL-адрес, который является внутренним (недоступным с помощью обычных URL-маршрутов) - аналогично тому, как Devise отображает страницы с ошибкой «auth failed». Лучше всего было бы просто вызвать одно конкретное действие контроллера в приложении по имени и вернуть его результат рендеринга (без его равномерного маршрута).Рендеринг «внутреннего» контроллера Rails из промежуточного программного обеспечения

Каков стандартный, современный способ сделать это?

ОБНОВЛЕНИЕ:

def call(env) 
    if user_from_env(env).free_accout? 
    InterestingPagesController.action(:how_to_signup).call(env) 
    else 
    @app.call(env) 
    end 
end 

ответ

1

Вы можете возвратить действие контроллера в качестве конечной точки с помощью стойки controller.action, а затем вызвать конечную точку с endpoint.call() или конечной точкой [].

+2

Зачем добавлять пример кода? То есть что мне нужно отдать в ответ на стойку? Или как я могу вызвать контроллер в промежуточном программном обеспечении? – Julik

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

  • Нет связанных вопросов^_^