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