can't convert Array into String

The default ./config/environment.rb file in Rails 2.2.2 has the following suggestion for setting a value for the load_path of I18n:

 

config.i18n.load_path << Dir[File.join(RAILS_ROOT, 'my', 'locales', '*.{rb,yml}')] 
  config.i18n.default_locale = :"zh-CN" 

 

Using this syntax causes I18n to crash while loading the locale files. Exception is:

 


can't convert Array into String (TypeError)
 .../i18n-0.0.1/i18n/backend/simple.rb:176:in `extname'
 .../i18n-0.0.1/i18n/backend/simple.rb:176:in `load_file'
 .../i18n-0.0.1/i18n/backend/simple.rb:13:in `load_translations'
 .../i18n-0.0.1/i18n/backend/simple.rb:13:in `each'
 .../i18n-0.0.1/i18n/backend/simple.rb:13:in `load_translations'
 .../i18n-0.0.1/i18n/backend/simple.rb:79:in `init_translations'
 .../i18n-0.0.1/i18n/backend/simple.rb:94:in `lookup'
 .../i18n-0.0.1/i18n/backend/simple.rb:33:in `translate'
 .../i18n-0.0.1/i18n.rb:160:in `t'

 

This is caused by the call to '<<' instead of '=' or '+=', changing the suggestion to the following solves the problem:

 

config.i18n.load_path += Dir[File.join(RAILS_ROOT, 'my', 'locales', '*.{rb,yml}')] 
config.i18n.default_locale = :"en" 
reference:

你可能感兴趣的:(Rails)