2

キャッシュ ダイジェストを使用したロシアン ドール キャッシングに関する私の理解から、フラグメントをバージョン管理する必要がないようにするために、子フラグメントを更新すると、ダイジェスト キーがバブルアップして親の有効期限が切れるはずです。

これが正しければ、親キャッシュの有効期限が切れていない子のテンプレートを更新しているという問題があります。このシナリオでは、/schoolworks/need_grading/row.html.haml の html を変更していますが、/schoolworks/need_grading/row.html.haml のキャッシュが原因で変更が反映されません。

2 つの異なるページの 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