我有一个使用会话的 Rails 应用程序,我在本地主机上的 Chrome 中使用它。将其关闭后,我在 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