Ruby on rails Rails-设计-登录或注销后重定向到当前页面
我正在开发一个RubyonRails应用程序,并使用Desive进行用户身份验证。然而,每当我(从任何页面)登录或注销时,我总是被重定向到主页“/”。而我试图做的是,当我从任何页面(例如“/events”)登录时,我会在登录后被重定向回该页面(在本例中为“/events”)。注销也是如此 我试着跟着。但是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的函数不会被覆盖,也不会到达它们的
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_控制器(根路径的控制器)(但不会显示在页面中)。显然这是一个错误。你对这种行为的可能原因有什么想法吗?