質問

この1は私が困惑しています。

私は、キャッシュされたフラグメントとの見解を持っています:

 - cache :key=>"news" do    
   %h2 News
   - etc

私が使用して掃除をしています:

def expire_home_cache
  puts "expire_home_cache"
  expire_fragment(:key => "news") 
end

私はコンソール出力に「expire_home_cache」を見ることができるようにスイーパーが呼び出されます。

しかし、フラグメントが更新されません...

任意のアイデア?

役に立ちましたか?

解決

あなたはこれを試してみてください。

   cache("news") do    
     %h2 News
     - etc
   end

と...

def expire_home_cache
  puts "expire_home_cache"
  expire_fragment("news") 
end

...またはこれを試してみてください...

 - cache({:key=>"news"}) do    
   %h2 News
   - etc

私は、問題は、ルビーやレールは、キーが正確ので、キャッシュ方式とexpire_fragmentは、2つの異なるキャッシュキーを生成しているされていることを決定苦労していることかもしれ考えています。

他のヒント

タグexpire_fragment(:key => "news")ActionController::Base.new.expire_fragment(:key => "news")を交換してみてください

説明する時間がないが、それは私のために働いています。

これを行うための適切な方法はあります:

cache :news do

  ...
end

そして、あなたのスイーパーでます:

expire_fragment :news

これは直接あなたの質問に答えていませんが、代替としてtimed_fragment_cacheプラグインを試してみました?

http://github.com/tricycle/timed_fragment_cache/tree/masterする

私は、これが私のプロジェクトにフラグメントを期限切れのはるかに簡単な方法であることがわかっています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top