论坛首页 编程语言技术论坛

一行代码搞定ActiveRecord的二级缓存

浏览 15820 次
该帖已经被评为精华帖
作者 正文
   发表时间:2008-11-27  
发现这个插件在rails2.2上不能正常工作,所有单元测试都出错。我使用的是
config.cache_store = :memory_store

貌似rails2.2的activerecord.reload有比较大的变化。Quake Wang有空检查一下吗?
0 请登录后投票
   发表时间:2008-11-27  
嗯,我看到上面的了,实际上我试过换成memcache,也是会出错。
0 请登录后投票
   发表时间:2008-11-27  
对不起,我搞错了,在使用memcache出错是另外的原因,看上去是Cache机制不一样造成的。我再试试了。
但是,在我用rails2.1.2时,单元测试使用:memory_store也不会出错啊,这比较奇怪了。
0 请登录后投票
   发表时间:2008-12-01  
问题解决了,单元测试换成memcache就好了,在开始测试前需要把cache的对象清除一下。之前是使用memory_store,会自动清除,现在已经用不了了。
0 请登录后投票
   发表时间:2009-06-15  
有人知道 CachedModel 这个插件的地址吗?

我在github和rubyforge上面找到的cachedmodel好像都跟你们说的不一样啊.
0 请登录后投票
   发表时间:2009-09-12   最后修改:2009-09-12
你这个插件在父子类同时声明 acts_as_cached的时候应该会出现死循环

所以在

 module InstanceMethods
    def self.included(base)    
      cached_injected = base.respond_to? :find_one_with_cache
      if cached_injected
         .......
      end




可以先判断一下

另外,如果有使用 Rails 2.3.2或之前的朋友可能会碰到从缓存中取出来的freeze的情况,这是因为Rails的cache还在用MemoryStore做localcache,正确的解决方案在


https://rails.lighthouseapp.com/projects/8994/tickets/2655-railscache-freezes-all-objects-passed-to-it

最下面有两个patch

据说2.3.4也有问题

0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics