gpt4 book ai didi

ruby-on-rails - 在 Rails 3 中为所有具有缓存摘要的区域设置过期片段

转载 作者:行者123 更新时间:2023-12-04 07:30:48 26 4
gpt4 key购买 nike

我正在使用带有 cache_digests 的 Rails 3,并且我在模板中有一个片段缓存:

<% cache [I18n.locale,'city-list'] do %>
...
<% end %>

在观察者中,我想像这样使所有语言环境的缓存过期:

I18n.available_locales.each do |loc|
ActionController::Base.new.expire_fragment("#{loc}/city-list")
end

但显然这行不通,因为我在过期调用中缺少该片段的摘要

是否有一种干净的方法来使缓存过期?

最佳答案

似乎答案是“无法使 cache_digests 与手动过期一起工作”,请参阅 DHH 的 these answers

要变通,有两种选择:

  1. 绑定(bind) key 一些模型并依赖于基于 key 的过期:<% cache [I18n.locale, city, "city-list"] do %>

  2. 跳过缓存调用中的摘要,并手动过期,如问题中所示:<% cache [I18n.locale, "city-list"], skip_digest: true do %>

关于ruby-on-rails - 在 Rails 3 中为所有具有缓存摘要的区域设置过期片段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22197271/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com