我试图用设计注销但没有重定向!所以我想在注销后禁用重定向。原因是我想要渲染某个模板。 如何从设计中注销用户而不重定向 - >>这个方法只有< - ? 我已经覆盖了设计会话控制器。
我的方法(在application_controller.rb中的过滤之前调用)
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
答案 0 :(得分:2)
从设计继承会话控制器并拥有自己的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