回答
使用與使用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