根据我对使用缓存摘要进行俄罗斯娃娃缓存的理解,为了防止我们必须对片段进行版本控制,如果我更新子片段,摘要键应该冒泡以使其父片段过期。
如果这是正确的,我会遇到一个问题,即我正在更新一个不会过期的子模板,它是父缓存。在这种情况下,我正在更改 /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"
]
看起来嵌套依赖项与呈现的部分匹配。我不知道为什么这不会使父缓存过期。