23

Rails 3.1 アプリ用に Heroku で Memcached を使用しています。バグがあり、間違ったものが表示されています - パラメータがキャッシュに対して正しくありませんでした。

私はこれを持っていました:

<% cache("foo_header_cache_#{@user.id}") do %> 

フラグメント キャッシングを削除して Heroku にプッシュしたところ、不良データはなくなりました。

そして、私はそれを次のように変更しました:

<% cache("foo_header_cache_#{@foo.id}") do %> 

ただし、パラメーターを @user から @foo に修正すると、(正しいデータで更新するのではなく) 古い [正しくない] キャッシュされたバージョンが再び表示されました。

これを手動で期限切れにするか、表示されているこの悪いデータを取り除くにはどうすればよいですか?

4

4 に答える 4

42

Railsコンソールに移動して次のコマンドを使用して、キャッシュ全体を手動でクリアすることになりました。

Rails.cache.clear
于 2012-05-05T07:13:32.993 に答える
26

Rails コンソールから:

Rails.cache.delete 'FRAGMENT-NAME'
于 2014-09-01T16:08:15.777 に答える
21

はい、どうぞ:

<% ActionController::Base.new.expire_fragment("foo_header_cache_#{@user.id}") %>

参考:
- Rails Observer/Model から expire_fragment を呼び出す方法は?

于 2013-03-16T10:00:34.323 に答える