当我尝试更改webapp上的区域设置时出现问题。在开发模式(webrick)中一切正常,但是当我在我的prd env(Unicorn + NGINX)上部署时,会发生一种奇怪的行为:
对于每个标志我设置此链接
<%= link_to "<button class='btn flag flag-#{lang}'></button>".html_safe, {controller: 'amministratore/localecontroller', action: 'set', locale: lang} %>
其中lang
是区域设置。
在控制器内部我有这个简单的逻辑:
def set
I18n.locale = params[:locale] || I18n.default_locale
redirect_to amministratore_items_url
end
问题是这样的:当我点击标志时(在开发时一切正常),页面没有被重新加载但是区域设置被更改(用<%=debug(params)%>
检查。这意味着页面内的其他网址(使用default_url_option将当前语言环境设置为所有URL)没有正确的语言环境。
实施例
prd和dev之间的相同请求是equals(header等等)
老实说,我不知道在哪里寻找解决方案......
由于
答案 0 :(得分:0)
我猜您正在使用Rails 4,因此这是Turbolinks问题。我不打算详细介绍(您可以阅读on the gem page),但解决方法是在按钮中添加data-no-turbolink
属性。
另外,我不明白为什么你把按钮放在链接里而不是使用button_to
Rails助手?