Перейти на определенную страницу, если учетная запись не активирована в рельсах - PullRequest
0 голосов
/ 29 июня 2019

У меня есть модель пользователя и учетной записи, и ассоциация - это учетная запись пользователя has_one.Для аутентификации я использую devise gem.Каждый раз, когда пользователь регистрируется впервые, также создается учетная запись.Но аккаунт будет в состоянии деактивации.Это будет в активном состоянии, когда администратор дает доступ к учетной записи.Если это состояние инактивации, мне нужно перенаправить страницу на конкретную страницу, где будет отображаться «Ожидание активации».Я использовал приведенный ниже код

def after_sign_in_path_for(resource)
  redirect activation_path
end

Но если пользователь нажимает на другие ссылки, он не должен переходить на эту страницу, он должен быть ограничен и перенаправлен на путь активации, говоря об этом в процессе активации.

1 Ответ

0 голосов
/ 29 июня 2019

Вы можете, например, добавить before_action для этого

class ApplicationController
  before_action :check_activation

  private

  def check_activation
    redirect_to activation_path unless current_user.account.active?
  end
end

TODO:

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