有没有办法编写Rails方法,它会注销并重定向到自定义页面?我正在使用Devise身份验证gem。
我不希望所有注销都会跟随此重定向,但仅限于调用此方法的位置。
答案 0 :(得分:7)
这取决于您重定向到一个地方或另一个地方的条件,但这是我在我的应用程序中根据用户的角色进行不同重定向的方式:
将此作为私有方法添加到 ApplicationController :
中 private
def after_sign_out_path_for(resource_or_scope)
# If it's admin
if is_admin?(current_user)
admin_path
# Otherwise
else
root_path
end
end
基本上,您需要在after_sign_out_path中找到需要应用的条件,并根据该条件返回路径。请注意,您获得了包含范围的符号,因此您可以使用它来选择返回的重定向路径。