2012-05-20 12 views
6

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

答えて

13

むしろフラグメントキャッシュの期限切れよりも、あなたはキャッシュキーのロケールの一部、つまり何か

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

などのさまざまなユーザーがフッタ/ナビゲーションバーが、すべての意志の異なる言語バージョンを見ることができるこの方法を行う必要がありますキャッシュされたバージョンを参照してください。

+0

私は私が私の目の前で右で何かが欠けていると私は見つめています知っていたが! :)ありがとう! – octimizer

+0

クール。もし答えがあなたを助けてくれたら、答えを同じものを探している人々を助けるために受け入れられたとマークするべきです。 –

+1

私が書いたのは以下の通りです:<%cache>#{I18n.locale} _footer "do%> footer_html_here <% end %> – octimizer

5

のRails 3のフラグメントをキャッシュすると、これは私のためのトリックでした:

- cache([object, locale: I18n.locale]) do 
関連する問題