如果帐户未在 rails 中激活,请转到特定页面

Go to a specific page if account is not activated in rails

我有用户和帐户模型,关联是用户 has_one 帐户。 对于身份验证,我正在使用设计 gem。每当用户第一次注册时,也会创建一个帐户。但该帐户将处于停用状态。当管理员授予对帐户的访问权限时,这将处于活动状态。如果它处于停用状态,那么我需要将页面重定向到将显示等待激活的特定页面。 我使用了下面的代码

def after_sign_in_path_for(resource)
  redirect activation_path
end

但是,如果用户点击其他链接,则不应转到该页面,它应该被限制并重定向到激活路径,说明正在激活过程中。

例如,您可以为此添加一个 before_action

class ApplicationController
  before_action :check_activation

  private

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

待办事项:

  • 确保匿名用户(current_user 为 nil)得到正确处理
  • 如果当前页面是激活页面,则不执行重定向(否则会导致重定向循环)