Ruby on Rails - 是否可以删除"模板树摘要"从缓存键?

时间:2017-08-31 17:48:54

标签: ruby-on-rails ruby caching

我们正在实施一个"被动"缓存大部分都会使每个重要对象始终缓存,并且只在更新/创建时更新这些对象。我们使用jbuilder渲染我们与https://github.com/rails/jbuilder交互的大部分json。它们包含了非常直接的缓存镜像视图片段缓存。

我的问题是这样 - 当存储缓存的对象时,我需要使用可检索的键,以便我们可以在任何模型更新后删除它们。起初这似乎很容易......但是却引起了麻烦。 Rails.cache.delete_matcher似乎没有工作,将正则表达式传递给expire_fragment也是如此。

所以我能看到的唯一解决方案是能够删除"模板树摘要"从缓存键的末尾开始。

Link here

真实世界的例子是转换

  

在jbuilder / V3 /用户/ 38-20170809004706672937000 /表演者/ 1493168-20170823184135817877000 / d84abdae117cd787b8204fd744e7dc06

  

在jbuilder / V3 /用户/ 38-20170809004706672937000 /表演者/ 1493168-20170823184135817877000

(bye bye d84abdae117cd787b8204fd744e7dc06)

这将使密钥易于复制,从而删除。 这甚至可能吗?我错过了包含此密钥的重要性吗?任何帮助将非常感谢!我死于她

1 个答案:

答案 0 :(得分:0)

您可以将skip_digest选项添加到所有缓存

离。

json.cache! [' v1',场地],expires_in:12.hours,:skip_digest =>真的     json.partial! "场地/场地",场地:场地 端

从缓存密钥的末尾删除缓存摘要

更多

https://reinteractive.com/posts/197-if-you-explicitly-expire-cached-fragments-opt-out-of-cache-digests