Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 为什么我的I18n函数在测试环境下抛出异常?_Ruby On Rails_Ruby_Ruby On Rails 4_Internationalization_Rails I18n - Fatal编程技术网

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'