Ruby on rails Rails-设计-登录或注销后重定向到当前页面

Ruby on rails Rails-设计-登录或注销后重定向到当前页面,ruby-on-rails,devise,Ruby On Rails,Devise,我正在开发一个RubyonRails应用程序,并使用Desive进行用户身份验证。然而,每当我(从任何页面)登录或注销时,我总是被重定向到主页“/”。而我试图做的是,当我从任何页面(例如“/events”)登录时,我会在登录后被重定向回该页面(在本例中为“/events”)。注销也是如此 我试着跟着。但是store\u user\u location的输出始终是“/”,而且,的after\u sign\u path\u和after\u sign\u path\u的函数不会被覆盖,也不会到达它们的

我正在开发一个RubyonRails应用程序,并使用Desive进行用户身份验证。然而,每当我(从任何页面)登录或注销时,我总是被重定向到主页“/”。而我试图做的是,当我从任何页面(例如“/events”)登录时,我会在登录后被重定向回该页面(在本例中为“/events”)。注销也是如此

我试着跟着。但是
store\u user\u location
的输出始终是“/”,而且,的
after\u sign\u path\u和
after\u sign\u path\u的
函数不会被覆盖,也不会到达它们的“我的代码”

我在应用程序控制器中为
添加了
后的
,如下所示:

def after_sign_in_path(resource_or_scope)
    puts stored_location_for(resource_or_scope) || super
end

如何解决此问题?

尝试使用
request.referer
sessions\u controller.rb
application\u controller.rb

您可以使用
请求访问referer路径。referer

如下

protected

def after_sign_in_path_for(resource_or_scope)
  stored_location_for(resource_or_scope) || request.referrer
end

def after_sign_out_path_for(resource_or_scope)
  stored_location_for(resource_or_scope) || request.referrer
end

参见

请发布代码。你在的注销路径之后把
放在哪里了?razvans我用
的注销路径之后的
代码更新了我的问题。我将其添加到Application_controller中,因为我没有使用定制的Desive控制器(除了与社交媒体omniauth身份验证相关的部分)@TamerB请尝试此答案我发现了问题所在。每当我导航到任何页面时,出于某种原因,在调用页面后会使用home_控制器(根路径的控制器)(但不会显示在页面中)。显然这是一个错误。你对这种行为的可能原因有什么想法吗?