我有一个 rails 2.3.4 应用程序和一行如下所示:
temp = Rails.cache.fetch(:temp_id) { User.find_by_name('Temp').id }
一切正常,直到我决定通过将以下内容添加到我的 environment.rb 来将缓存层切换到 memcached:
config.cache_store = :mem_cache_store
现在以前可以正常工作的行给了我以下错误:
undefined method 'length' for :temp_id:Symbol
/usr/local/lib/ruby/gems/1.8/gems/activesupport-2.3.4/lib/active_support/vendor/memcache-client-1.7.4/memcache.rb:645:in 'get_server_for_key'
我理解这个错误,但我想这个常见的情况会很快被 Rails 测试用例发现,所以我想知道我是否做错了什么。否则,我确定我可以对这个问题进行猴子补丁以将符号转换为字符串。
谢谢