当前位置:  开发笔记 > 前端 > 正文

Rails CookieOverflow

如何解决《RailsCookieOverflow》经验,为你挑选了2个好方法。

突然,在我的第一个Rails应用程序中,我开始看到这个错误:

/!\ FAILSAFE /!\  Fri Sep 11 17:30:48 -0400 2009
Status: 500 Internal Server Error
ActionController::Session::CookieStore::CookieOverflow

一些研究指出使用cookie来存储会话数据,但我没有这样做(至少不是故意的).而且,这才刚刚开始发生.我今天开始工作的唯一一件事就是能够上传一个zip文件.我正在尝试用于测试的zip文件是1.1MB.

此外,Firebug仅显示此域的2个cookie.名为_html_session507B,名为user_credentials147B.上传的文件是否以一种大文件可能导致这种情况的方式临时存储?上传单个图像效果很好.

谢谢你的帮助.

更新:哎呀.与我对下面的Vitaly和xijo的评论相反,错误不是很明显.在这种情况下,我正在将某些内容上传到我的Image模型中,并且在我的ImagesController调用时发生错误@image.save!.

有趣的是,我仍然不太明白错误发生在哪里.我创建了一个Image#before_validation方法并在那里引发异常,但CookieOverflow错误发生在我到达那里之前.在控制器进行保存调用之后和特定回调之前,是否有任何地方可以删除代码?我的理解是,这before_validation是第一次回调.



1> Matt Connoll..:

如果您尝试存储flash[:notice] = 'blah'太长的消息,则很容易发生这种情况,因为该消息存储在会话cookie中.


救命稻草!这正是造成这个问题的原因.

2> Buzzy..:

我今天遇到了类似的问题.显然,Rails会话只能存储4k的数据.一种可能的解决方案是为会话使用数据库存储.

去做这个:

    添加 config.action_controller.session_store = :active_record_store到您的environment.rb文件中.

    使用创建会话的迁移文件 rake db:sessions:create

    运行迁移 rake db:migrate

希望这可以帮助

推荐阅读
保佑欣疼你的芯疼
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有