Rails控制台没有加载所有语言环境

时间:2014-10-12 17:09:50

标签: ruby-on-rails ruby-on-rails-4 translation

我的项目包含龋齿的区域设置文件,根据它们对应的模型在子目录中组织。

为了让Rails加载所有这些,我在config / application.yml中设置了这个选项:

config.i18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')]

现在,执行rails console并编写需要添加最后一个语言环境文件的内容(config / locale / email / en.yml),我明白了:

Loading development environment (Rails 4.1.6)
2.1.3 :001 > I18n.t("email.footer_text")  
  => "translation missing: en.email.footer_text" 
2.1.3 :002 > translations = I18n.backend.send(:translations);
2.1.3 :003 > translations[:en][:email]  
  => nil

但是,如果我是从控制器(在puts命令的帮助下)执行此操作,则会打印出良好的语言环境字符串。

PD:在控制台中,它会加载除最后添加的所有其他语言环境。我尝试删除旧的,并且控制台(重启后)给我一个错误,因为我删除的区域设置不存在。

我应该清理哪种缓存?

为什么控制台会在删除文件后重新启动控制台时记住已删除的文件曾经存在?

1 个答案:

答案 0 :(得分:1)

您应首先手动在rails控制台中加载语言环境:

2.1.3 :001 > I18n.load_path += Dir[Rails.root.join('config', 'locales', '**', '*.{rb,yml}')]