2012-11-29 12 views
8

Rails 3のすべての自動ロードパスをリストするにはどうすればよいですか?私はこれを行うとき、RailsのコンソールでRails 3のすべての自動ロードパスをリストする方法

は、それが唯一の設定に追加されたカスタムパスが表示されます:

$ rails c 
Loading development environment (Rails 3.2.9) 
1.9.3p194 :001 > MyRailsApp::Application.config.autoload_paths 
=> [] 

答えて

16

更新:以下activesupportの:: Dependencies.autoload_pathsを使用してローラの回答を参照してください。私は代わりの方法としてこの答えを残しました。 Railsアプリケーションのモジュールに含まれているRails::Engine

、次のような方法があります:

def _all_autoload_paths 
    @_all_autoload_paths ||= (config.autoload_paths + config.eager_load_paths + config.autoload_once_paths).uniq 
end 

だから、あなたがいずれかを実行できます。

(MyRailsApp::Application.config.autoload_paths + MyRailsApp::Application.config.eager_load_paths + MyRailsApp::Application.config.autoload_once_paths).uniq 

か:

[:autoload_paths, :eager_load_paths, :autoload_once_paths].collect{|m|MyRailsApp::Application.config.send(m)}.flatten.uniq 

またはちょうど:

MyRailsApp::Application._all_autoload_paths 

のRails 3.2.9のデフォルトの結果は次のとおりです。これは、他の宝石とカスタム荷重経路によって追加されたすべての自動ロードパスを含める必要があります

["/path/to/my_rails_app/app/assets", "/path/to/my_rails_app/app/controllers", "/path/to/my_rails_app/app/helpers", "/path/to/my_rails_app/app/mailers", "/path/to/my_rails_app/app/models"] 

13

は、コンソールからそれを呼び出すか、コマンドラインからrails r 'puts ActiveSupport::Dependencies.autoload_paths'を実行ActiveSupport::Dependencies.autoload_paths

を介してすべての自動ロードパスにアクセスすることができます。

ここに詳細情報(レール4の場合、それは同様に3をレールに適用されます):同様にRailsの5中 http://guides.rubyonrails.org/autoloading_and_reloading_constants.html#autoload-paths

+1

作品 – dps