当我正常加载页面时它没有显示任何语言环境错误但是当我执行ajax请求时我得到了
I18n::InvalidLocale (:en is not a valid locale):
i18n (0.7.0) lib/i18n.rb:284:in `enforce_available_locales!'
i18n (0.7.0) lib/i18n.rb:151:in `translate'
i18n (0.7.0) lib/i18n.rb:168:in `translate!'
// ajax request
$.ajax({
url: "/unlock_company",
type: "GET",
dataType: 'json',
success: function(data) {
console.log(data);
}
});
在控制器中
def unlock_company
respond_to do |format|
format.json {render json: { :result => '@result'}}
end
end
在application.rb文件中
config.i18n.enforce_available_locales = true
I18n.config.enforce_available_locales = true
config.i18n.available_locales = [:"en-US"]
答案 0 :(得分:1)
尝试使用String代替长区域设置名称:
config.i18n.available_locales = ["en-US"]
答案 1 :(得分:1)
我不确定这是否是一个解决方案,但值得研究。简单的测试。你没有提到你正在使用的Rails版本,但是从Rails 4-ish开始,这些版本已被弃用:
config.i18n.enforce_available_locales = true
I18n.config.enforce_available_locales = true
过去I18n有一个错误导致你看到同样的错误。使用.enforce_available_locales触发了错误/错误。更多here。
由于.enforce_available_locales默认为true,因此您应该将其从application.rb中删除,作为副作用,它可以消除错误。
答案 2 :(得分:1)
我遇到同样的问题,我将这些行添加到我的application.rb文件中,它解决了问题:
config.i18n.fallbacks = true
config.i18n.enforce_available_locales = false