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

时间:2019-06-29 10:54:30

标签: ruby-on-rails devise

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

def after_sign_in_path_for(resource)
  redirect activation_path
end

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

1 个答案:

答案 0 :(得分:0)

例如,您可以为此添加一个session()->has('success')

before_action

待办事项:

  • 确保正确处理匿名用户(class ApplicationController before_action :check_activation private def check_activation redirect_to activation_path unless current_user.account.active? end end 为零)
  • 如果当前页面是激活页面,请不要执行重定向(否则会导致重定向循环)