我在我的一个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'
我用谷歌搜索,发现有人在http://www.coffeepowered.net/page/2/
有类似的问题在该页面上提到,这应该有效:
class ActionController::Caching::Actions::ActionCachePath
def path
@cached_path ||= Digest::SHA1.hexdigest(@path)
end
end
但我不知道我应该在哪里打字。所以我有两个问题:
任何帮助都将不胜感激。
答案 0 :(得分:1)
我认为您发现的帖子建议您使用该代码创建一个猴子补丁。使用这些内容在Rails.root + 'lib/'
下创建一个文件,并确保在ActionController之后加载它(应该是默认值)。补丁将覆盖ActionController的默认代码。
你肯定想要这样的东西 - 我总是确保我的memcached密钥被散列。这使得它们更难以调试,但它可以防止这样的问题以及当有人为memcached创建一个太长的密钥时出现密钥长度溢出错误。