dev*_*vth 7 ruby ruby-on-rails
看起来这个问题将在Rails 4中解决:http:
//blog.plataformatec.com.br/2012/08/eager-loading-for-greater-good/但在那之前,我想知道如何渴望 -加载我的模块/类/lib.
在IRB中,它似乎是我第一次尝试访问时按需加载:
Foo::Bar.constants
=> []
Foo::Bar::Service
=> Foo::Bar::Service
Foo::Bar.constants
=> [:ServiceBase, :Service]
Run Code Online (Sandbox Code Playgroud)
我在该模块中有其他几个类,我的代码依赖于能够Foo::Bar.const_defined?在运行时查找它们- 我如何确保Foo::Bar在启动时加载所有类?
我已经config.autoload_paths += %W(#{config.root}/lib)在使用了application.rb.
root/config/initializers/eager.rb放入此应该加载该文件夹中的所有.rb文件:
Dir["#{Rails.root}/lib/*.rb"].each {|file| load file}
Run Code Online (Sandbox Code Playgroud)
小智 6
我把这个放在application.rb解决了这个问题
config.eager_load_paths += Dir["#{config.root}/lib/**/"]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4698 次 |
| 最近记录: |