我在程序html.rb中代码如下:
<%= button_to "Add to Cart" , :action => 'add_to_cart', :id => product %>
嵌套在一个循环里
但是跑出来的画面,有3笔数据,源代码分别指向的url是add_to_cart/2,add_to_cart/4,add_to_cart/3。
我点第二个链接的时候报的错。
那么,我首先去调查一下是否把session存入了数据库中。在命令行查询sqlite3:
要进入所建工程的目录下,有个db文件夹,在最初安装sqlite3时默认安装了名为development.sqlite3的数据库,因此要通过命令行进入该库:
>cd db
db>sqlite3 development.sqlite3
sqlite>.tables 查看下该库下创建了几张表
sqlite>select * from sessions
看到是空表。于是,在/config/initializers下打开session_store.rb,将最后一句注释放开,如下:
Depot::Application.config.session_store :active_record_store
重启服务后,发现这个Cookies的溢出错误解决了。
然后查询一下sessions表,有数据了。
后来查了一下,cookie的大小有4k的限制,如果超过了4k,rails就会报错:Cookies::CookieOverflow。
本文介绍了一个Rails应用程序中遇到的Cookies溢出错误及其解决方案。作者通过检查数据库会话表并配置session_store来解决这个问题,避免了由于cookie大小超过4KB限制导致的应用错误。
363

被折叠的 条评论
为什么被折叠?



