我在users.html.slim视图中有以下内容:
.header
Welcome
- cache ['user/details', user.last_modified] do
= render 'user/details', user: @user
我的问题是我更改了user/details
标记,由于用户实际上没有更改,我仍然可以获得缓存版本。
根据文档,由于HTML已更改,缓存应该到期
视图片段更改时,缓存片段也将过期 (例如,视图中的HTML更改)。的字符串 密钥的结尾是模板树摘要。它是一个MD5哈希计算 基于您正在缓存的视图片段的内容。如果你 更改视图片段,MD5哈希将更改,到期 现有文件。
但情况似乎并非如此。
解决这种情况的正确方法是什么?您依赖键的参数未更改,但实际标记已更改。我正在考虑做类似的事情:
- cache ['user/details/v2', user.last_modified] do
= render 'user/details', user: @user
但我想知道在这些情况下这是否更合适。
答案 0 :(得分:0)
而不是user.last_modified
只传递user
。
这将根据user.id
和user.updated_at
创建缓存密钥。
如果last_modified
实际上是您希望成为缓存键的内容,则引用@user
但您的缓存密钥为user
。