Rails 3 Locale在使用不同服务器时切换

时间:2012-05-14 10:56:04

标签: ruby-on-rails internationalization webrick unicorn

我有一个Rails 3.2.3应用,default_locale设置为:nl。当我使用Thin或Unicorn启动应用程序时,应用程序的语言环境设置为:en。当我使用Webrick时,语言环境正确设置为:nl

此更改是由更新多个第三方gem的提交触发的,虽然我无法特别挑出任何一个gem升级 - 我可以单独撤销它们并得到相同的结果。但是,当我检查违规提交的父母时,一切都很好。

当我在生产模式下在远程服务器上运行应用程序时,一切正常,所以它似乎是我的机器的本地。

我已经删除了所有已安装的gem并重新安装了所有这些,这没有任何区别。

有没有人知道什么可能触发这种行为?特别是为什么使用webrick或unicorn会有所作为?

编辑:我已经确定了将Draper从0.11升级到0.12(issue at Github)会触发的错误。不确定是否也是原因。

3 个答案:

答案 0 :(得分:0)

答案 1 :(得分:0)

这个问题发生在我之前,由于“active_admin”gem你可能想要使用早期版本来防止这种情况,我真的不知道这个问题,所以你可以稍微玩一下。

另一种选择是在before_filter中设置active_admin语言环境,

config.before_filter :set_admin_locale

set_admin_locale位于application_controller中:

def set_admin_locale
  I18n.locale = :nl
end 

希望它有所帮助

答案 2 :(得分:0)

我设法在我自己的Rails应用程序中将此问题跟踪到一个不好的做法,该应用程序通过升级Draper gem导致了一个错误。有full explanation in the Draper documentation