Railsのクラスパスについて
railsの中身をみてみようと思い、まずはappフォルダなどrailsの各フォルダを読み込む処理をしているところはどこか色々みてみた
まずはrails/railties/lib/rails/engine/configuration.rbのpathsメソッドに書いてあった。
def paths @paths ||= begin paths = Rails::Paths::Root.new(@root) paths.add "app", eager_load: true, glob: "*" paths.add "app/assets", glob: "*" paths.add "app/controllers", eager_load: true paths.add "app/helpers", eager_load: true paths.add "app/models", eager_load: true paths.add "app/mailers", eager_load: true paths.add "app/views" paths.add "app/controllers/concerns", eager_load: true paths.add "app/models/concerns", eager_load: true paths.add "lib", load_path: true paths.add "lib/assets", glob: "*" paths.add "lib/tasks", glob: "**/*.rake" paths.add "config" paths.add "config/environments", glob: "#{Rails.env}.rb" paths.add "config/initializers", glob: "**/*.rb" paths.add "config/locales", glob: "*.{rb,yml}" paths.add "config/routes.rb" paths.add "db" paths.add "db/migrate" paths.add "db/seeds.rb" paths.add "vendor", load_path: true paths.add "vendor/assets", glob: "*" paths end end
それとrails/railties/lib/rails/application/configuration.rbにもあった。
def paths @paths ||= begin paths = super paths.add "config/database", with: "config/database.yml" paths.add "config/secrets", with: "config/secrets.yml" paths.add "config/environment", with: "config/environment.rb" paths.add "lib/templates" paths.add "log", with: "log/#{Rails.env}.log" paths.add "public" paths.add "public/javascripts" paths.add "public/stylesheets" paths.add "tmp" paths end end
ふむふむ。。
最初のメソッドみていると、app以下にフォルダ作ってもパスを通すように見える。。