gpt4 book ai didi

ruby-on-rails - 当用户在 Devise 中注销时如何避免重定向?

转载 作者:行者123 更新时间:2023-12-05 05:13:56 30 4
gpt4 key购买 nike

出于某种原因,我想避免在用户注销后被重定向。

这里是 devise's sessions controller .

我已经试过了:

  • 覆盖 after_sign_out_path_for 但我得到 No route matches [DELETE] "/"Cannot redirect to nil!
  • 到我的 session Controller 中的 skip_before_action :verify_signed_out_user;但它仍会尝试重定向。

我怎样才能在不被重定向的情况下销毁用户的 session ?

最佳答案

您可以通过覆盖 Devise::SessionsController 来更改行为和 #destroy 方法:

class MySessionsController < Devise::SessionsController
def destroy
signed_out = (Devise.sign_out_all_scopes ? sign_out : sign_out(resource_name))
# the `now: true` option sets the flash for this request
set_flash_message! :notice, :signed_out, now: true if signed_out
respond_to do |format|
format.all { head :no_content }
format.any(*navigational_formats) { render 'something' }
end
end
end

您还需要告诉路由器路由到您的自定义 Controller :

# config/routes.rb
devise_for :users, controllers: { sessions: "my_sessions" }

关于ruby-on-rails - 当用户在 Devise 中注销时如何避免重定向?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53062551/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com