我有一个带有两个标志的主页,可以在英语和德语之间切换。这两个标志有一个链接来触发控制器上的操作,如下所示:
<%= link_to image_tag("germany-flag-24.png",:border=>0), {:controller=>:welcome, :action=>:set_de}%>
<%= link_to image_tag("united-kingdom-flag-24.png",:border=>0), :controller=>:welcome, :action=>:set_en %>
在我的控制器中,我定义了两个动作:
def set_de
I18n.locale = :de
logger.debug "Locale=#{I18n.locale}"
redirect_to :controller=>:welcome, :action=>:index
end
def set_en
I18n.locale = :en
logger.debug "Locale=#{I18n.locale}"
redirect_to :controller=>:welcome, :action=>:index
end
def index
logger.debug "Locale=#{I18n.locale}"
...
end
我的routes.rb文件配置正确,单击标志工作,记录器显示触发控制器中的相应操作。
网页的奇怪行为是:点击德语,点击德语,点击英语,点击英语,再点击德语,保留英文。
logger.debug命令确认这一点,set_de将DE打印到日志文件,但索引操作然后将EN打印到日志文件。
如果我再次单击语言图标之间等待5到10秒钟,则不会发生此行为。
问题:这怎么可能?