我使用cache-money gem来透明地使用Memcached.使用提供的配置文件,它在所有模式(开发,测试,生产)上启用.有没有办法只在生产模式下激活缓存资金?
目前还不清楚如何做到这一点,并且在开发模式下处理缓存是一个彻底的痛苦.
感谢Obie Fernandez提供了一个很棒的离线提示:使用cache-money的#index方法无所事事.这为模型中的#index语句提供了一个位置,并停止了上面提到的错误.
这是我的完整cache_money.rb lib:
if RAILS_ENV != 'development' require 'cache_money' config = YAML.load(IO.read(File.join(RAILS_ROOT, "config", "memcached.yml")))[RAILS_ENV] $memcache = MemCache.new(config) $memcache.servers = config['servers'] $local = Cash::Local.new($memcache) $lock = Cash::Lock.new($memcache) $cache = Cash::Transactional.new($local, $lock) class ActiveRecord::Base is_cached :repository => $cache end else # If we're in development mode, we don't want to # deal with cacheing oddities, so let's overrite # cache-money's #index method to do nothing... class ActiveRecord::Base def self.index(*args) end end end