我正在尝试使用片段缓存来缓存使用I18n的Ruby on Rails站点上的页脚和导航栏。问题是,更改语言然后会以错误的语言显示页脚和导航栏。当语言环境发生变化时,如何使片段缓存失效?
答案 0 :(得分:15)
您应该将语言环境作为缓存键的一部分,即
,而不是使片段缓存失效。cache :locale => I18n.locale, ... do
...
end
这样,不同的用户可以看到页脚/导航栏的不同语言版本,但所有用户都会看到缓存版本。
答案 1 :(得分:6)
在Rails 3中缓存片段时,这对我来说很有用:
- cache([object, locale: I18n.locale]) do
答案 2 :(得分:0)
我曾经有这个帮助器,所以不需要显式地将语言环境传递给每个import Logger
class TestMe:
def __init__(self):
self.logger = Logger()
# stuff
调用:
cache