Ruby on rails Rails在初始化期间如何设置根目录?
关于rails如何创建应用程序,有两篇博客文章和一篇rails文章,但都没有解释rails如何查找和设置自己的根目录Ruby on rails Rails在初始化期间如何设置根目录?,ruby-on-rails,Ruby On Rails,关于rails如何创建应用程序,有两篇博客文章和一篇rails文章,但都没有解释rails如何查找和设置自己的根目录 他们真正解释的是如何通过继承的钩子来设置应用程序的类,以及如何通过#initialize-方法通过委托来实例化应用程序 然而,令我遗憾的是,他们忽略了Rails如何查找和设置其根目录,我需要根目录来实例化应用程序:/Engine和/Configuration-类 例如,在第一篇博文中,Rails.application.root已经存在: Rails::Serve
继承的
钩子来设置应用程序的类,以及如何通过#initialize
-方法通过委托来实例化应用程序
然而,令我遗憾的是,他们忽略了Rails如何查找和设置其根目录,我需要根目录来实例化应用程序:/Engine
和/Configuration
-类
例如,在第一篇博文中,Rails.application.root
已经存在:
Rails::Server.new.tap do |server|
require APP_PATH
Dir.chdir(Rails.application.root)
server.start
Rails在何处以及如何设置其根目录?
Rails.application
将root
委托给其配置对象,该对象是Rails::configuration
的实例。该类是Rails::Engine::Configuration
的子类。根目录作为初始化参数传入
您可以看到Rails.application.config正在定义中,其中包含一个确定应用程序根的方法:
#find_root
方法使用另一种方法,向上遍历目录路径,直到找到包含config.ru
的文件夹
def config #:nodoc:
@config ||= Application::Configuration.new(self.class.find_root(self.class.called_from))
end