Ruby on rails 为什么我的I18n函数在测试环境下抛出异常?
我在Ruby on rails 为什么我的I18n函数在测试环境下抛出异常?,ruby-on-rails,ruby,ruby-on-rails-4,internationalization,rails-i18n,Ruby On Rails,Ruby,Ruby On Rails 4,Internationalization,Rails I18n,我在config/initializers/i18n.rb中有以下内容: module I18n def self.name_for_locale(locale) I18n.backend.translate(locale, "i18n.language.name") #this is line 4 rescue I18n::MissingTranslation locale.to_s end end 我在这样的视图中使用它(我使用的是slim模板): 在开发/生
config/initializers/i18n.rb
中有以下内容:
module I18n
def self.name_for_locale(locale)
I18n.backend.translate(locale, "i18n.language.name") #this is line 4
rescue I18n::MissingTranslation
locale.to_s
end
end
我在这样的视图中使用它(我使用的是slim模板):
在开发/生产中,一切都很好。但是它在集成测试时抛出了一个错误。我得到以下信息:
uncaught throw :exception
@ /Users/username/.rvm/gems/ruby-2.1.1/gems/i18n-0.6.9/lib/i18n/backend/base.rb:37:in `throw'
/Users/username/.rvm/gems/ruby-2.1.1/gems/i18n-0.6.9/lib/i18n/backend/base.rb:37:in `translate'
config/initializers/i18n.rb:4:in `name_for_locale'
下面是我的en.yml
文件的一个示例:
en:
i18n:
language:
name: 'Americas'
date:
formats:
default: ! '%m-%d-%Y'
long: ! '%B %d, %Y'
对于我来说,像我在上面尝试的那样,获取每个区域名称的正确方法是什么?或者如何防止在测试环境中抛出错误
en:
i18n:
language:
name: 'Americas'
date:
formats:
default: ! '%m-%d-%Y'
long: ! '%B %d, %Y'