キャッシュ ダイジェストを使用したロシアン ドール キャッシングに関する私の理解から、フラグメントをバージョン管理する必要がないようにするために、子フラグメントを更新すると、ダイジェスト キーがバブルアップして親の有効期限が切れるはずです。
これが正しければ、親キャッシュの有効期限が切れていない子のテンプレートを更新しているという問題があります。このシナリオでは、/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"
]
ネストされた依存関係がレンダリングされたパーシャルと一致するようです。これで親キャッシュが期限切れにならない理由がわかりません。