2

根据我对使用缓存摘要进行俄罗斯娃娃缓存的理解,为了防止我们必须对片段进行版本控制,如果我更新子片段,摘要键应该冒泡以使其父片段过期。

如果这是正确的,我会遇到一个问题,即我正在更新一个不会过期的子模板,它是父缓存。在这种情况下,我正在更改 /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"
]

看起来嵌套依赖项与呈现的部分匹配。我不知道为什么这不会使父缓存过期。

4

0 回答 0