5

Rails プロジェクトでキャッシュを使用しており、特定の URL のキャッシュを期限切れにしたいと考えています。渡された URL に対応するフラグメントを期限切れにする次のコマンドを取得しました。

ActionController::Base.new.expire_fragment("localhost:3000/users/55-testing-devise/boards/")

このコードを Rails プロジェクトのどこに配置すればよいか混乱しています。テキスト フィールドに URL が追加され、期限切れボタンがクリックされるとすぐにコードが実行されます。

4

3 に答える 3

7

おそらく、別のアプローチを検討する必要があります。モデルはキャッシングがどのように機能するかを気にするべきではありません。従来、スイーパーのアプローチ全体は複雑になり、扱いにくくなり、残りのコードと同期しなくなる傾向があります。

基本的に、フラグメントを手動で期限切れにする必要はありません。代わりに、モデルが更新されたらキャッシュ キー/URL を変更します (新しいバージョンの新しいキャッシュ エントリを作成するため)。

今日の一般的な知恵は、Russian Doll Cachingアプローチを使用することです。リンクは基本を説明する記事に移動し、今後のRails 4にはさらに優れたサポートが含まれます.

これはおそらく、ほとんどの標準的な Rails アプリケーションに最適な方法です。

于 2013-04-29T09:03:49.687 に答える
2

キーにダイジェストが追加されていないため、expire_fragment は機能しません。ここで DHH を参照してください: https://github.com/rails/cache_digests/issues/35

json 応答のキャッシュに関する関連する回答を投稿しました: https://stackoverflow.com/a/23783119/252799

于 2014-05-21T12:29:41.117 に答える