Могу ли я получить текущий объект контроллера из ApplicationController в Rails 3.1? - PullRequest
2 голосов
/ 20 октября 2011

Есть ли способ получить контроллер, который будет обрабатывать запрос из класса ApplicationController?

В основном я пытаюсь найти способ возврата к HTTP, когда HTTPS больше не требуется. Я настроил Devise для использования SSl в соответствии с инструкциями:

#in config/environments/production.rb
config.to_prepare { Devise::SessionsController.force_ssl }
config.to_prepare { Devise::RegistrationsController.force_ssl }

Однако, как только контроллер Devise перенаправляет на SSL, он остается там. В вики Devise был фрагмент кода, который перенаправляет обратно на HTTP после завершения действия Devise. Однако это не сработает, если пользователь уходит с помощью других средств.

Исходя из моего мышления .NET, возможно, я смогу что-то сделать в базовом классе всех контроллеров, то есть ApplicationController. Если у меня может быть массив имен классов контроллеров, которые требуют SSL, то перенаправляет на HTTP, если текущий класс контроллеров не требует этого, возможно, это будет достаточно грубое решение на данный момент? Я новичок в Ruby и Rails, так что, возможно, я вообще не смотрю на это правильно ...

Спасибо, Дэни.

Ответы [ 2 ]

2 голосов
/ 20 октября 2011

Текущее имя контроллера можно увидеть в хеше params: params[:controller].

0 голосов
/ 22 сентября 2015

Вы также можете запустить controller_name

[3] pry(#<PostsController>)> controller_name
=> "posts"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...