仅对单个模型使用缓存资金?

我想使用缓存钱,但我不想开始自动缓存一切(我正在使用大型生产应用程序,太字节数据等)。 如何仅将其用于我指定的模型? 现在我有:

# initializers/cache_money.rb require 'cache_money' config = (cfg = YAML.load(IO.read(File.join(RAILS_ROOT, "config", "memcached.yml"))))[RAILS_ENV] || cfg["defaults"] $memcache = MemCache.new(config) $memcache.servers = config['servers'] $local = Cash::Local.new($memcache) $lock = Cash::Lock.new($memcache) $cache = Cash::Transactional.new($local, $lock) 

然后在模型中我想用缓存钱缓存:

 # my_model.rb class MyModel  $cache # ... end 

但这不起作用; 对is_cached的调用给出以下错误:NoMethodError:未定义的方法`create’for Config:Module

有任何想法吗? 如果不这样做,我可以在任何地方寻求缓存资金的帮助吗? 我找不到邮件列表或任何东西。

我认为这是cache_money代码中的一个错误。

github上有可用于修复此错误的分叉,例如: http : //github.com/quake/cache-money

通过此提交可以看到修复:

http://github.com/quake/cache-money/commit/54c3d12789f31f2904d1fe85c102d7dbe5829590

我刚刚遇到了尝试部署应用程序的同样问题。 在我的开发机器上运行它很好,但它在生产机器上出现此错误失败了。

除了体系结构(OSX vs CentOS)之外,我能看到的唯一区别是ruby版本不同(1.8.6 p114 vs 1.8.6 p0)。 将服务器升级到最新的1.8版本(1.8.7 p160)后,此错误消失了。

Interesting Posts