会话数据消失

时间:2011-12-16 16:44:59

标签: ruby-on-rails ruby-on-rails-3 session

我正在为我的rails应用程序编写一个功能,对于任何需要用户登录的任意操作,将首先提示未登录的用户使用ajax模式注册/登录,并在注册后/ login,原始操作已完成。

我正在尝试在会话中存储有关原始操作的信息。但是,当我在注册/登录结束时尝试访问时,会话数据正在消失。

当我检测到“匿名”用户时,我会保存有关操作的信息:

session[:interrupted_action] = #info on original action

然后渲染注册/登录模式。

完成后,我尝试再次访问会话信息:

if session[:interrupted_action]
  #do stuff to complete action

不幸的是,会话[:interrupted_action]现在是nil。我觉得我错过了一些明显的会话,但是我还没弄清楚。

我应该在这里做什么/调查?

1 个答案:

答案 0 :(得分:0)

来自Rails指南

config.session_store通常在config / initializers / session_store.rb中设置,并指定用于存储会话的类。可能的值有:cookie_store,它是默认值,:mem_cache_store,和:disabled。最后一个告诉Rails不要处理会话。也可以指定自定义会话存储。

因此,如果您使用的是默认配置,则会话将存储在Cookie中。确保您的浏览器允许存储cookie。

您可以检查您的localhost的cookie中是否有任何条目

另外,尝试打印会话本身以查看散列中是否有任何内容。