今天遇到个问题,项目配置为,ruby1.8.7,rails 3.1.3 用到了session,要吧user的信息村到session去,为了偷懒,索性将user的所有信息都扔到了session里面,之后在运行的时候报错了:ActionDispatch::Cookies::CookieOverflow,这是因为rails默认的是将session的存储到cookie里面,又因为cookie对字串的大小限制为4k,当session内存储的信息大于4k的时候就会报这个错误,关于session信息的存储,网上有很多解决方案:
Cookie (default)
PStore
ActiveRecordStore
DRbStore
FileStore
MemoryStore
在这里说下将session存储到memcached,在rails3中,将下面的配置信息添加到config/application.rb文件中
require 'memcache'
memcache_options = {
:compression => true,
:debug => false,
:namespace => "cha_mem",
:readonly => false,
:urlencode => true
}
memcache_servers = ['localhost:11211']
cache_params = *([memcache_servers, memcache_options].flatten)
#
SESSION_CACHE = MemCache.new *cache_params
之后再在该文件的底部加上:
config.session_store = {
:key => '_ImNet',
:secret =>'81b83630687cb1049549ee12b8579c063985d6089702ef46c',
:cache => SESSION_CACHE,
:expires => 3600*24*7
}
注意:in rails2 The session_store was configured in ActionController::Base.session, and that is now(in rails 3) moved to Rails.application.config.session_store
运维网声明
1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网 享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com