Перенаправлять на страницу входа, если пользователь не вошел в систему
Я хочу, чтобы мой пользователь был перенаправлен на регистрационную форму, если он не вошел в систему?
Дело в том, что я не хочу делать это для каждого действия. Я знаю, что есть способ, чтобы я мог определить это для каждого контроллера только один раз (например, что-то выполняется независимо от действия в моем контроллере), но я не могу вспомнить, как это сделать.
Ответы
Ответ 1
Используйте before_filter. Поместите в контроллер приложений следующее.
# application_controller.rb
before_filter :require_login
private
def require_login
unless current_user
redirect_to login_url
end
end
В приведенном выше коде предполагается, что вы определили метод current_user
, который возвращает пользовательскую запись, когда пользователь вошел в систему.
Затем в контроллере входа в систему
skip_before_filter :require_login
Ответ 2
Если вы хотите, чтобы логин был перенаправлен только на определенные контроллеры, используйте:
skip_before_filter :require_login, :only=>[:edit,:update]
или
skip_before_filter :require_login, :except=>[:new,:create]
Ответ 3
В вашем action_controller.rb как файл before_filter.