私は私はいくつかの意味を見ることができる、以下の引用を撮影しました:「キャッシュされたページおよびフラグメントは、通常モデルの状態に依存モデルまたはResqueワーカーでフラグメントキャッシュをどのように期限切れにしますか?
キャッシュは、関連するモデルを、アクションが作成され気に変更したり、破壊しません通常のオブザーバを使用することは、有効期限切れキャッシュのための最良の選択であるように思われます。
たとえば、モデルを更新するresqueワーカーがあります。モデルの更新/作成時に期限切れになるためには、フラグメントキャッシュが必要です。これはスイーパーではできません。
しかし、オブザーバを使用すると、私はモデルやResque仕事のいずれか、のようなものが必要になります意味:
ActionController::Base.new.expire_fragment('foobar')
モデル自体は、キャッシングについて知るべきではありません。これはまた、醜い結果につながるMVCの原則を破ります。
これは良いアプローチのように見えます。それでも、私は '/ app/models/foo_observer.rb'でキャッシュを期限切れにすることに熱心ではありません。 'foo_observer.rb'はキャッシュについて知ってはいけないと思います。 MVCのコンセプトを破棄します。 –
「オブザーバー」にコードを置くと、あなたが与えた理由からモデルと分離されます。モデルはこの副作用を知るべきではありません。 オブザーバはモデルではありません。モデルの後に名前を付ける必要はありません。名前に高次の問題を使用します。オブザーバを使用してMVCを「破壊する」というのは少しです。 良いアプリは科学ではなくエンジニアリングです。絶対的な純度を望むなら、キャッシュしないでください。 –