根据我对使用缓存摘要的俄罗斯玩偶缓存的理解,为了防止我们必须对片段进行版本化,如果我更新子片段,摘要密钥应该冒泡以使其父级到期。
如果这是正确的,我遇到的问题是我正在更新一个不会使其父缓存失效的子模板。在这种情况下,我正在更改/schoolworks/need_grading/row.html.haml中的html,并且由于/schoolworks/need_grading/row.html.haml上的缓存,这些更改从未反映出来。
两个不同页面的haml代码是:
/schoolworks/need_grading.html.haml
- cache @schoolwork.to_a do
#other html stuff
= render partial: 'schoolworks/need_grading/row', collection: @schoolwork
/schoolworks/need_grading/row.html.haml
- cache [ row, get_user_language] do
#other html stuff
= link_to row.title
我运行了rake cache_digests:nested_dependencies TEMPLATE = schoolworks / need_grading并返回
[
"schoolworks/need_grading/row"
]
看起来嵌套的依赖项与渲染的部分匹配。我迷失了为什么这不会使父缓存失效。