ruby – Rails 4引擎自动加载引擎的i18n语言环境文件吗?

前端之家收集整理的这篇文章主要介绍了ruby – Rails 4引擎自动加载引擎的i18n语言环境文件吗?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一个关于Rails引擎的问题,在Rails指南中没有提到Rails引擎.我希望能在这里得到它.

我有一个引擎,例如,名为my_engine,还有一个名为my_app的应用程序.

出于开发目的,在my_app的Gemfile中,我只是简单地将my_engine包含在以下行中,使用:file key.

#my_app/Gemfile
...
gem "my_engine",:path => "./../my_engine"
...

和my_engine结构是这样的:

.
├── Gemfile
├── Gemfile.lock
├── app
│ ├── ...
|   |...
|
├── config
│ ├── locales
│ │ └── models
│ │     └── products
│ │         ├── en.yml
│ │         └── zh-TW.yml
│ └── routes.rb
├── lib
│ ├── my_engine
│ │ ├── engine.rb
│ │ └── version.rb
│ ├── my_engine.rb
│ └── tasks
│     └── my_engine_tasks.rake

我发现当我尝试检查my_app下的I18n.load_path时,没有任何单一路径指向my_engine,这意味着,my_app不会加载my_engine的语言环境事务.

>>rails console
Loading development environment (Rails 4.0.2)
2.1.0 :001 >I18n.load_path.each { |x| puts x }

我是否遗漏了一些关于在my_engine中加载语言环境的配置或一些重要步骤?

解决方法

我正在使用
Rails 4.1.6

我在Gemfile中安装了我的引擎

gem 'core',path: "core"

当我检查我的负载路径

I18n.load_path.find_all { |p| p.match("core") }.each { |p| puts p }

我看到我的引擎中包含了语言环境

/absolute_path/core/config/locales/de.yml

/absolute_path/core/config/locales/en.yml

因此默认rails正在加载您的引擎区域设置

它也在文档中提到过

http://edgeapi.rubyonrails.org/classes/Rails/Engine.html

Then ensure that this file is loaded at the top of your config/application.rb (or in your Gemfile) and it will automatically load models,controllers and helpers inside app,load routes at config/routes.rb,load locales at config/locales/,and load tasks at lib/tasks/.

原文链接:https://www.f2er.com/ruby/267951.html

猜你在找的Ruby相关文章