7

I18n を使用する Ruby on Rails サイトで、フラグメント キャッシュを使用してフッターとナビゲーション バーをキャッシュしようとしています。問題は、言語を変更すると、フッターとナビゲーション バーが間違った言語で表示されることです。ロケールが変更されたときにフラグメント キャッシュを期限切れにするにはどうすればよいですか?

4

3 に答える 3

17

フラグメント キャッシュを期限切れにするのではなく、ロケールをキャッシュ キーの一部にする必要があります。

cache :locale => I18n.locale, ... do
  ...
end

このようにして、さまざまなユーザーがさまざまな言語バージョンのフッター/ナビゲーション バーを表示できますが、キャッシュされたバージョンはすべてのユーザーに表示されます。

于 2012-05-20T09:04:19.980 に答える
6

Rails 3でフラグメントをキャッシュするとき、これは私にとってはうまくいきました:

- cache([object, locale: I18n.locale]) do
于 2013-04-12T14:02:11.483 に答える