繁体   English   中英

登录时设计重置会话

[英]Devise Resetting Session On Login

我在application_controller.rb文件中定义了以下内容:

def redirect_back_or(default)
  redirect_to(session[:return_to] || default)
  session.delete(:return_to)
end

def store_location
  session[:return_to] = request.url
end

def after_sign_in_path_for(resource)
  r = session[:return_to] || user_root_url
  session.delete(:return_to)
  r
end

我正在尝试将用户送回他们在sign_in之前来自的位置,或者,如果未保存任何位置,请将其发送到其根页面。

我在我的一个控制器中称其为:

if current_user.nil?
  store_location
  redirect_to home_login_url, alert: "You must be logged in to purchase subscriptions"
  return
end

我单步调试器并观看了session[:return_to]设置,但是在我登录并after_sign_in_path_for(resource)session[:return_to]为空。

如何在整个登录过程中保留return_to变量?

我正在运行Rails 3.2.1和Devise 2.1.2

原来我在哈希中覆盖了Devise的条目。 我认为:return_to是Devise使用的。 我最终以完全不同的方式实现了这一点,但是如果遇到问题,请查找名称冲突

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM