如何解决密钥中的内存缓存错误非法字符Ruby 1.8.7 / Rails 2.3.9
| 我的一个Rails应用程序中出现以下错误[Ruby 1.8.7 + Rails 2.3.9]A ArgumentError occurred in home#dashboard:
illegal character in key \"dashboard_prod:views/reports/1050 - 097\"
/opt/ruby-enterprise/lib/ruby/gems/1.8/gems/activesupport-2.3.9/lib/active_support/vendor/memcache-client-1.7.4/memcache.rb:643:in `get_server_for_key\'
我在Google上搜索,发现在http://www.coffeepowered.net/page/2/上也有类似的问题。
在该页面上提到,这应该起作用:
class ActionController::Caching::Actions::ActionCachePath
def path
@cached_path ||= Digest::SHA1.hexdigest(@path)
end
end
但是我不确定应该在哪里输入。所以我有两个问题:
如何解决眼前的问题
我应该在哪里重写上面的代码,在哪里重写某些标准类或Gem中定义的类。
任何帮助,将不胜感激。
解决方法
我认为您发现的帖子建议您使用该代码创建一个猴子补丁。在带有这些内容的“ 2”下创建一个文件,并确保将其加载到ActionController之后(应为默认值)。该补丁将覆盖ActionController的默认代码。
您肯定想要这样-我总是确保对Memcached键进行哈希处理。这使它们调试起来有些困难,但是当有人创建对于memcached来说太长的密钥时,它可以防止此类问题以及密钥长度溢出错误。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。