2010-11-17 27 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

相關問題