【发布时间】:2014-09-14 22:38:52
【问题描述】:
我正在将 Rails 3 应用程序迁移到 Rails 4。迁移过程非常顺利,但我遇到的一个大问题是我的旧 Rails 3 代码无法使缓存过期。我收到的日志如下:
Expire fragment views/localhost:3000/cardsets/36?action_suffix=edityes (0.0ms)
...
Read fragment views/localhost:3000/cardsets/36?action_suffix=edityes/d8034b6e68ba30b5916a2ebb73b68ffe (0.0ms)
事实证明,这是因为 Rails 4 带来了一种新奇的缓存,即缓存摘要。末尾的那一长串十六进制是 Rails 想要与此缓存片段关联的某些视图的 md5 摘要。
我相信我不需要缓存摘要。我的应用程序很少更新,通常我可以在更新时清除缓存,因此缓存片段的概念与我的一段视图代码的先前部署版本无关。
我发现我可以使用:skip_digest => true 标志修改对cache 的任何给定调用。 This blog post是指修改他们大量的cache调用添加:skip_digest。但我相信我想将此标志应用于我的应用程序中对cache 的每一次调用。当然必须有某种方法来普遍禁用缓存摘要?
【问题讨论】:
标签: ruby-on-rails caching ruby-on-rails-4 memcached cache-digests