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

时间:2018-02-12 09:17:04

标签: ruby-on-rails devise

我正在开发Ruby on Rails应用程序并使用Devise进行用户身份验证。但是,每当我登录或退出(从任何页面)时,我总是被重定向到主页" /"。虽然我尝试做的是当我从任何页面登录时(例如" / events")我被重定向回到这个确切的页面(" / events" in this case)登录后。退出也是如此。

我试过关注this link。但store_user_location的输出总是" /"此外,函数after_sign_out_path_forafter_sign_out_path_for未被覆盖,我的代码从未到达。

我还在application_controller中添加了after_sign_out_path_for,如下所示:

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

如何解决此问题?

1 个答案:

答案 0 :(得分:0)

尝试将request.referrer用于sessions_controller.rbapplication_controller.rb

您可以使用request.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

请参阅devise wiki