设计身份验证:注销并重定向

时间:2012-06-28 18:13:56

标签: ruby-on-rails redirect devise logout

有没有办法编写Rails方法,它会注销并重定向到自定义页面?我正在使用Devise身份验证gem。

我不希望所有注销都会跟随此重定向,但仅限于调用此方法的位置。

1 个答案:

答案 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中找到需要应用的条件,并根据该条件返回路径。请注意,您获得了包含范围的符号,因此您可以使用它来选择返回的重定向路径。