2010-11-17 40 views
3
我有一个问题

在Rails 3中使用Rails 3.对象Memcached的问题没有被反序列化周围

使用memcached的第二次在我的控制器下面是

@last_post = Rails.cache.fetch('last') {Post.last}

从我打电话的视图@last_post.title

第一次加载视图时,会显示最后一篇文章的标题。一旦视图被刷新,我得到错误undefined method 'title' for #<String:0x8007ae0>

看起来好像该对象没有被反序列化第二次。

我做错了什么?我能做些什么来解决这个问题? (Ruby 1.8.7,Rails 3.0.1)

谢谢!

回答

2

我认为它与Marshal.load,基本上轨道神奇地加载所有的类为你,但是当你调用Rails.cache.fetch在某些时候它会调用Marshal.load不知道任何关于Rails依赖加载,有时可能会失败默默(未定义类/模块)

我的解决方案是简单地增加

require_dependency 'post' 

到您的控制器,它应该加载类元帅图书馆看到

1

我发现解决方案!无论您是否缓存,确保您的商店设置在您的development.rb之内。又名将此添加到development.rb

config.cache_store = :dalli_store