Rails 3のすべての自動ロードパスをリストするにはどうすればよいですか?私はこれを行うとき、RailsのコンソールでRails 3のすべての自動ロードパスをリストする方法
は、それが唯一の設定に追加されたカスタムパスが表示されます:
$ rails c
Loading development environment (Rails 3.2.9)
1.9.3p194 :001 > MyRailsApp::Application.config.autoload_paths
=> []
Rails 3のすべての自動ロードパスをリストするにはどうすればよいですか?私はこれを行うとき、RailsのコンソールでRails 3のすべての自動ロードパスをリストする方法
は、それが唯一の設定に追加されたカスタムパスが表示されます:
$ rails c
Loading development environment (Rails 3.2.9)
1.9.3p194 :001 > MyRailsApp::Application.config.autoload_paths
=> []
更新:以下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"]
。
は、コンソールからそれを呼び出すか、コマンドラインから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
作品 – dps