0

私が取り組んでいるプロジェクトはコンソールスタイルのアプリケーションであり、永続オブジェクトにはまったくアクセスできません。すべてのモデルは一時的なオブジェクトでHashie::Mashあり、さまざまな API 呼び出しへのアクセスを介してオンザフライで拡張および設定されます。

私はRailsフラグメント キャッシングを調べています。例は、フラグメント キャッシング メカニズムがモデルの永続性に依存していることを示しています。

永続モデルを前提としないフラグメント キャッシングの例を探しています。

4

1 に答える 1

1

はい、Rails フラグメント キャッシングは、古い任意のものをキャッシュできます。キーを指定するだけです。たとえば、ドキュメントからのこの例:

<% cache('all_available_products') do %>
  All available products:
<% end %>

あなたが遭遇する問題は、Rails がそのキャッシュを賢く破壊しようとしないということです。それに関する限り、内部のデータは静的であり、永久に存続するからです。したがって、再びドキュメントから、キャッシュを手動で破棄する必要があります。

expire_fragment('all_available_products')

さて、問題の種類に対する正確な解決策は、ユースケースによって異なります。API 呼び出しの応答などで何かが異なる場合は、おそらくキャッシュを無効にすることができます。ただし、あなたの質問に答えるには、はい、永続的なモデルなしで使用してもまったく問題ありません。

于 2014-12-04T00:15:49.800 に答える