7

この問題は Rails 4 で解決されるようです : http://blog.plataformatec.com.br/2012/08/eager-loading-for-greater-good/ my にモジュール/クラスをロードします/lib

IRB では、最初にアクセスしようとしたときにオンデマンドでロードされているようです。

Foo::Bar.constants
=> []

Foo::Bar::Service
=> Foo::Bar::Service

Foo::Bar.constants
=> [:ServiceBase, :Service]

そのモジュールには他にもいくつかのクラスがあり、コードは実行時に使用してそれらを検索できることに依存しています.Foo::Bar.const_defined?すべてFoo::Barの のクラスが起動時に確実にロードされるようにするにはどうすればよいですか?

ですでに使用config.autoload_paths += %W(#{config.root}/lib)していapplication.rbます。

4

3 に答える 3

9

これをroot/config/initializers/eager.rb入れると、そのフォルダ内のすべての.rbファイルが読み込まれます。

Dir["#{Rails.root}/lib/*.rb"].each {|file| load file}
于 2012-11-04T16:00:07.637 に答える