如果帐户未在 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)得到正确处理
- 如果当前页面是激活页面,则不执行重定向(否则会导致重定向循环)
我有用户和帐户模型,关联是用户 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)得到正确处理 - 如果当前页面是激活页面,则不执行重定向(否则会导致重定向循环)