【发布时间】:2010-10-19 21:42:17
【问题描述】:
有点像
Rails.cache.delete('site_search_form')
似乎不起作用。这可能吗?谢谢。
【问题讨论】:
-
你运行的是什么版本的 Rails? 2.1新增缓存删除方法
标签: ruby-on-rails ruby caching actionview
有点像
Rails.cache.delete('site_search_form')
似乎不起作用。这可能吗?谢谢。
【问题讨论】:
标签: ruby-on-rails ruby caching actionview
缓存片段条目的创建键与您使用 Rails.cache 访问的键略有不同。
改用expire_fragment(您可以将其发送到控制器):http://api.rubyonrails.org/classes/ActionController/Caching/Fragments.html#M000438
【讨论】:
Rails.cache.delete_matched 'views/site_search_form*'
skip_digest: true 的哈希值。更多信息:reinteractive.net/posts/…
在 Rails 5 中,我采取了以下步骤来破坏缓存,而不使用 skip_digest: true。我们的问题是更改 I18n 字符串的值不会反映在计算的缓存摘要中,因此缓存不会自动被破坏。
这是定义缓存块的视图:
/ views/layouts/_footer.html.slim
- cache :footer do
span= t('shared.footer')
然后在 rails 控制台我运行:
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 关键字参数计算摘要。
【讨论】:
Rails.cache.delete "views/site_search_form"
【讨论】:
ActionController::Base.new.expire_fragment(key)
【讨论】:
skip_digest: true 的哈希值。更多信息:reinteractive.net/posts/…