Подтвердить что ты не робот

Перенаправлять на страницу входа, если пользователь не вошел в систему

Я хочу, чтобы мой пользователь был перенаправлен на регистрационную форму, если он не вошел в систему?

Дело в том, что я не хочу делать это для каждого действия. Я знаю, что есть способ, чтобы я мог определить это для каждого контроллера только один раз (например, что-то выполняется независимо от действия в моем контроллере), но я не могу вспомнить, как это сделать.

4b9b3361

Ответ 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.