2010-06-16 66 views
2

我想在我的应用程序中使用会话数据,由于某种原因我没有设置正确的东西。会话[:键] =值不起作用

代码:

session[:key] = some_value 

生成以下错误:

The error occurred while evaluating nil.[] 

其他控制器没有与会话的一个问题,所以我猜我错过了一些基本的配置事情的地方。

+0

看到产生错误的代码会很有帮助。你说'其他控制器'没有指出这个线路是什么控制器,以及它如何配置。 – 2010-06-16 03:44:13

+0

我跳了一下枪。真正的问题是,JavaScript中有一个post方法被调用,并且在该方法中,该会话无效。 – 2010-06-16 03:50:10

+0

情节变得更加浓厚。这只在Chrome中发生,在firefox中工作正常 – 2010-06-16 03:56:44

回答

1

好吧,我想我现在明白了。我的例子有一个稍微复杂的情况。我实际上有以下几点:

所以我有一个双数组的错误。我添加了以下内容:

session[:chat_history] ||= [] 

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

因此,我将初始化程序移至实际访问会话的方法,生活又恢复良好。

0

它看起来像会话变量是零,这使得我想起了框架不能将其设置为以下原因之一:

  1. 浏览器中没有的cookie通过了会议
  2. 浏览器在传递但它与服务器预期的任何内容都不匹配

有人说有些控制器可以工作。在这些控制器运行之前,有没有机会为用户创建一个会话?

+0

请参阅我对原始帖子的评论 – 2010-06-16 03:57:29