Rails.cache和un-dumpable(Marshal)结构:如何缓存? (关于示例flickraw-response)

时间:2010-11-19 18:38:35

标签: ruby-on-rails caching memcached marshalling unmarshalling

我希望Rails.cache一个flickraw响应(这也适用于其他不可转储的结构),memcached如下:

@flickr = Rails.cache.fetch('flickr_sets', :expires_in => 1) { flickr.photos.getRecent }

明显的错误是

TypeError: singleton can't be dumped

我在zilkey上读了一篇关于该问题的好帖子,他建议为这种情况构建一个新的转储方法。

http://zilkey.com/2008/7/5/rails-cache-memcached-development-mode-and-offline-cache-invalidation

我的问题是:缓存那种对象的正确方法是什么?我应该编写自己的转储方法吗?是不是可以用flickr.photos.getRecent.to_s作为字符串将对象保存在缓存中然后以某种方式重新加载它?任何想法?

1 个答案:

答案 0 :(得分:2)

我在github跟踪器上问了你的问题,因为我对实现这个问题也非常感兴趣。 (见https://github.com/hanklords/flickraw/issues#issue/16

hanklords似乎已在当前提交中修复此问题!伟大的事情,我想在我当前的应用程序中实现这一点。你还可以测试一下吗,z3cko? https://github.com/hanklords/flickraw/commit/d09db4c5549e72b42eefbf1ea5c98f95bd1bd3d9