【发布时间】:2011-05-24 17:47:31
【问题描述】:
我的一个 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 中定义的类。
任何帮助将不胜感激。
【问题讨论】:
-
正如我所料,错误是由于 1050 - 097 [dashboard_prod:views/reports/1050 - 097] 中的空格...我删除了空格 [1050-097 => 这实际上是邮政编码,应用程序显示一些基于邮政编码的报告],一切正常。但是我真的很想知道如何使路径的散列起作用,因为我认为我可能会再次遇到一些问题。如果我的客户再次输入空间怎么办。谁知道其他字符不能与 memcached 一起使用。
标签: ruby-on-rails memcached monkeypatching