4

我想使用缓存资金,但我不想开始自动缓存所有内容(我正在使用大型生产应用程序、TB 级数据等)。如何仅将其用于我指定的模型?现在我有:

# 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 < ActiveRecord::Base
  is_cached :repository => $cache
  # ...
end

但这不起作用;对 is_cached 的调用给出以下错误:NoMethodError: undefined method `create' for Config:Module

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

4

2 回答 2

3

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

在 github 上有可以修复这个 bug 的分支,例如:http: //github.com/quake/cache-money

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

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

于 2009-10-18T18:29:36.783 回答
1

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

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

于 2009-05-20T11:21:28.960 回答