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

Pau*_*aul 0 redirect ruby-on-rails logout devise

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

我不希望所有注销都将遵循此重定向,但仅限于调用此方法的位置.

Nob*_*ita 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
Run Code Online (Sandbox Code Playgroud)

基本上,您需要在after_sign_out_path中找到需要应用的条件,并相应地返回该条件的路径.请注意,您获得了带有范围的符号,因此您可以使用它来选择返回的重定向路径.