2010-10-16 76 views
0

我使用Rails应用程序中active_record_store这是在会议session[:email] = "[email protected]"轨session_store古怪行为

存储这个现在这款作品以动作罚款。但是,当这个动作得到了和被重定向到另一个页面,该页面还可以访问相同的会话[:邮箱]我得到一个错误

undefined method `eq' for nil:NilClass 

这也许应该是指我试图在一些地方,我是比较值不被允许。但我在代码中看不到任何东西。

回答

0

这看起来像一个古老的问题,但我只是有同样的问题,不得不自己弄清楚,并认为我会在这里发布解决方案为其他任何人遇到此问题。这不是很好的记录,但要得到这个工作,你必须添加:

config.action_dispatch.session_store = :active_record_store 

到application.rb中,并

Application.config.session_store :active_record_store 

到config /初始化/ session_store.rb。然后,你要做的:

rake db:sessions:create 

和:

rake db:migrate 

然后,你必须重新启动服务器的轨道。我认为这是db:sessions:创建步骤,绊倒原始海报。这个数据库表不得不按照rails所期望的方式进行布局(也就是说,使用'id'列,这是导致此错误的实际原因,我认为),而且当前会话必须有一个有效的ID。因此需要创建表并重新启动服务器,或者如果存在的话可能会清空表。

+0

嘿...这里的问题是表没有ID列... – Amit 2011-01-31 19:10:43