当前位置:  开发笔记 > 数据库 > 正文

Cache-Money:仅用于生产?

如何解决《Cache-Money:仅用于生产?》经验,为你挑选了1个好方法。

我使用cache-money gem来透明地使用Memcached.使用提供的配置文件,它在所有模式(开发,测试,生产)上启用.有没有办法只在生产模式下激活缓存资金?

目前还不清楚如何做到这一点,并且在开发模式下处理缓存是一个彻底的痛苦.



1> Matt Darby..:

感谢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

推荐阅读
TXCWB_523
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有