ruby-on-rails-3 – 设计:退出*没有*重定向?

我试图用设计注销,但没有重定向!所以我想在注销后禁用重定向.原因是我想要渲染某个模板.

如何从设备注销用户而不重定向 – >>这个方法只有< – ?我已经覆盖了设计会话控制器. 我的方法(在application_controller.rb中的filter之前调用)

  def check_concurrent_session
    if user_signed_in?
      if current_user && !(session[:token] == current_user.login_token)
        render :template => "users/logout_duplex", :layout => "application", :locals => { sub_layout => "left" }
        # The next line always redirects to signout_path
        # I want to disable the complete redirect so it just logs out and shows the rendered template
        Devise.sign_out_all_scopes ? sign_out : sign_out(@user)
        return
      end
    end
  end

最佳答案 从设计继承会话控制器并拥有自己的after_sign_out_path_for实现.这是设计用于在注销后重定向的方法.

class SessionsController < Devise::SessionsController

 protected
 def after_sign_out_path_for(resource)
  //your implementation
 end
end

将其添加到config / routes.rb中

devise_for :users, :controllers => {:sessions => 'sessions'}

该方法的设计实现如下所示

def after_sign_out_path_for(resource_or_scope)
 respond_to?(:root_path) ? root_path : "/"
end
点赞