我有一个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