回答
使用与使用Rails.cache访问的关键码略有不同的关键字创建缓存碎片条目。
使用expire_fragment
代替(你可以将它发送到控制器):http://api.rubyonrails.org/classes/ActionController/Caching/Fragments.html#M000438
这对我不起作用。如果这对你不起作用,请尝试`Rails.cache.delete_matched'views/site_search_form *'` – yivo 2016-08-15 18:40:23
从Rails 3开始,片段缓存最后有一个散列,它基于视图内容生成。这样一来,如果视图更改,缓存会自动分配,但这会使密钥过期变得困难。你可以告诉Rails不要在缓存调用中用`skip_digest:true`添加散列。更多信息:https://www.reinteractive.net/posts/197-if-you-explicitly-expire-cached-fragments-opt-out-of-cache-digests – 2016-12-08 19:34:54
的ActionController :: Base.new.expire_fragment(键)
Rails.cache.delete "views/site_search_form"
在Rails 5我采取了以下措施,胸围缓存无需诉诸skip_digest: true
。我们的问题是,更改I18n字符串的值并不反映在计算出的缓存摘要中,因此缓存不会自动获取。
这里是高速缓存块被定义的视图:
/ views/layouts/_footer.html.slim
- cache :footer do
span= t('shared.footer')
然后,在轨道控制台I运行:
fragment = ActionController::Base.new.view_context.cache_fragment_name(:footer, virtual_path: 'layouts/_footer.html.slim')
ActionController::Base.new.expire_fragment(fragment)
cache_fragment_name
将根据virtual_path
关键字参数计算出的摘要。
- 1. 控制缓存过期
- 2. Rails从模型中过期片段高速缓存
- 3. Android:如何更新刷卡视图中的缓存片段?
- 4. 片段缓存
- 5. 如何设置缓存控制/过期头
- 6. 如何删除过期使用Spring高速缓存控制头
- 7. C#,MVC - 试图从控制台删除站点缓存
- 8. 利用浏览器缓存 - CSS /图像的过期/缓存控制
- 9. 缓存视图的缓存键控制命名
- 10. Rails - 片段缓存未到期
- 11. 如何禁用某些视图的动作控制器缓存?
- 12. 如何从控制器访问片段中的片段?
- 13. 如何从控制台过期(使用caches:action设置)操作?
- 14. 如何控制CSS缓存?
- 15. 在我的视图中使用缓存片段时,如何避免控制器中的活动记录调用?
- 16. 在后台缓存毕加索图片
- 17. 为列表视图缓存图片
- 18. 在后台控制Gemfire缓存更新
- 19. 缓存系统。控制台输出
- 20. 分段控制子视图从扩展
- 21. 如何从Merb的控制台/ script-runner生成视图?
- 22. 如何控制Flex 3的图像控制缓存
- 23. 如何从Rails中的控制台调用控制器/视图方法?
- 24. 缓存图片?
- 25. 如何从视图控制器在内存中释放内存
- 26. IBM Bluemix:如何访问IBM Bluemix新控制台中的控制台视图
- 27. 如何检查内存缓存过期
- 28. 从视图 - 控制
- 29. 在Rails中更改视图时正在重写片段缓存
- 30. 控制台/外壳缓存/恢复如何工作?
你正在运行哪个版本的Rails?缓存删除方法已添加到2.1中。 – vrish88 2009-04-16 16:32:40