Rails 3 アプリを Rails 4 に移行中です。移行はほぼスムーズでしたが、大きな問題の 1 つは、キャッシュを期限切れにする古い Rails 3 コードが機能しないことです。次のようなログを取得しています。
Expire fragment views/localhost:3000/cardsets/36?action_suffix=edityes (0.0ms)
...
Read fragment views/localhost:3000/cardsets/36?action_suffix=edityes/d8034b6e68ba30b5916a2ebb73b68ffe (0.0ms)
これは、Rails 4 が新しいファンキーな種類のキャッシングであるキャッシュ ダイジェストを導入したためであることが判明しました。末尾の 16 進数の長い文字列は、Rails がこのキャッシュ フラグメントに関連付けたいビューの md5 ダイジェストです。
キャッシュダイジェストは必要ないと思います。私のアプリケーションはほとんど更新されず、通常は更新時にキャッシュをクリアできるため、ビュー コードの一部の以前の展開のバージョンを参照するキャッシュ フラグメントの概念は関係ありません。
フラグをcache
使用して任意の呼び出しを変更できることがわかりました。このブログ投稿では、多数の呼び出しを addに変更する方法について言及しています。しかし、このフラグをアプリケーション内のすべての呼び出しに適用したいと考えています。確かに、キャッシュダイジェストを普遍的に無効にする方法がいくつかあるに違いありませんか?:skip_digest => true
cache
:skip_digest
cache