session [:key] = value不起作用

时间:2010-06-16 03:32:09

标签: ruby-on-rails

我正在尝试在我的应用程序中使用会话数据,出于某种原因我没有正确的设置。

代码:

session[:key] = some_value 

生成以下错误:

The error occurred while evaluating nil.[]

其他控制器没有会话问题,所以我猜我错过了一些基本配置的东西。

2 个答案:

答案 0 :(得分:1)

好的,我想我现在已经明白了。我的情况稍微复杂一些。我实际上有以下内容:

session[:chat_history][chat.from.id] ||= []

所以我遇到了双数组错误。我添加了以下内容:

session[:chat_history] ||= []

问题是我第一次这样做,我把它放在了before_filter方法中。显然,在before_filter方法中会话对象是nil,至少我的应用程序设置方式。

所以我将初始化程序移动到实际访问会话的方法,生活又好了。

答案 1 :(得分:0)

看起来会话变量是nil,这让我觉得框架无法设置它是出于以下原因之一:

  1. 浏览器没有为会话传递cookie
  2. 浏览器在Cookie中传递,但它与服务器预期的任何内容都不匹配
  3. 据说有些控制器有效。在这些控制器运行之前,某些东西是否有机会为用户创建会话?