Есть два сообщения в блоге и разделы, посвященные тому, как Rails создает приложение, но ни одно из них не объясняет, как Rails находит и устанавливает свой собственный корневой каталог.
Что они действительно объясняют, так это то, как, в основном через inherited
хук, задается класс приложения и как он затем создается посредством делегирования#initialize
-метод.
Однако, к большому сожалению, они в основном пропускают то, как Rails находит и устанавливает свой корневой каталог, который мне нужен для создания экземпляра приложения: /Engine
и /Configuration
-classes.
Например, в первом сообщении в блоге уже есть Rails.application.root
:
Rails::Server.new.tap do |server|
require APP_PATH
Dir.chdir(Rails.application.root)
server.start
Где и как Rails устанавливает свой корневой каталог?