Sim*_*ong 7 ruby rails-engines ruby-on-rails-4
我有一个关于Rails引擎的问题,在Rails指南中没有提到Rails引擎.我希望能在这里得到它.
我有一个引擎,例如,名为my_engine,还有一个名为my_app的应用程序.
出于开发目的,在my_app的Gemfile中,我只是简单地将my_engine包含在以下行中,使用:file key.
#my_app/Gemfile
...
gem "my_engine", :path => "./../my_engine"
...
Run Code Online (Sandbox Code Playgroud)
和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
Run Code Online (Sandbox Code Playgroud)
我发现当我尝试检查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 }
Run Code Online (Sandbox Code Playgroud)
是否我错过了一些关于在my_engine中加载语言环境的配置或一些重要步骤?
Mik*_*ele -1
在应用程序控制器中声明的所有方法都可以从任何位置看到。指示应用程序应使用代码加载哪种语言:
# on my_app/app/controller/application_controller.rb
class ApplicationController < ActionController::Base
before_filter :set_locale
def set_locale
I18n.locale = request.headers['HTTP_ACCEPT_LANGUAGE'].split(',')[0].split('-')[0]
end
Run Code Online (Sandbox Code Playgroud)
希望这对您有帮助 兰迪·马什
归档时间: |
|
查看次数: |
2666 次 |
最近记录: |