一个应用程序中的会话影响本地主机上的不同应用

时间:2013-02-05 02:15:31

标签: ruby-on-rails

我有一个Rails应用程序,它使用会话,我在Chrome上使用localhost。在我关闭它之后,我在Chrome中启动了另一个不使用会话的应用程序,并且在新会话应用程序中不存在的类中遇到会话错误。

ActionDispatch::Session::SessionRestoreError (Session contains objects whose class definition isn't available.
Remember to require the classes for all objects kept in the session.
(Original exception: uninitialized constant Question [NameError])
):

当我在另一个浏览器中尝试使用新的'无会话'应用程序时(我之前没有使用过),即使它继续无法在Chrome中运行也能正常工作,所以我猜测来自第一个应用程序的会话在镀铬和干扰与第二。我清除了缓存,但它仍然无法正常工作(因此我可能需要在Chrome中再次清除1000次),但是,我也发现了这种方法

reset_session

http://api.rubyonrails.org/classes/ActionController/Base.html#M000668

但是当我把它放在应用程序控制器中时(希望它能清除整个应用程序中的所有会话),它会显示未定义的局部变量或方法。

两个问题

1)是预期的行为,即第一个应用程序的会话是否会影响第二个应用程序的运行?

2)我应该如何使用reset_session来避免这个问题,还是有另一种方法?

更新 清除缓存后应用程序在Chrome中运行,但我仍然想知道如何使用reset_session

1 个答案:

答案 0 :(得分:0)

rails最佳实践是使用Ruby Version Manager。使用RVM重新安装ruby比调试这些问题的时间更短。

https://rvm.io/