在Rails 3中,默认的会话存储机制是cookie_store。我认为这意味着会话哈希中的内容被序列化,编码并存储在浏览器中的cookie中?这是否意味着会话中没有(或很少)会存储在服务器中?Rails 3基于Cookie的会话问题
我有几个问题,我有一个cookie溢出错误,我假设,因为我不断添加到我的用户实例(这也链接/从cookie中提取)。
u = session[:user]
u.add_this lots_of_data
所以最终我得到了一个cookie溢出错误。
我正确吗?会话是否完全存储在Rails 3中的Cookie中(默认情况下)?
是的,确切地说。换句话说,当你只能存储他们的数据库ID时,不要在会话中存储整个模型。 – 2010-09-13 07:56:57
对。究竟!问题依然存在,模型本身是否会在Cookie中随着您在服务器上的填充而变得越来越大? – matsko 2010-09-13 16:02:43
如果您将ID放入会话中,您将在会话中拥有该ID,没有别的。如果在会话中放置一个完整的对象(如上面的示例中所示),它将占用序列化对象所需的尽可能多的空间... – averell 2010-09-14 07:36:39