How does Ruby know where to find a required file?

 ̄綄美尐妖づ 提交于 2019-12-04 08:51:58

When you start your rails app it runs config/boot.rb which calls Rails::Initializer.set_load_path and thatsets up the $LOAD_PATH.

Ruby uses that list of directories to find the files specified on a require line. If you give it an absolute path like require '/home/lolindrath/ruby/lib.rb' it will skip that search.

This is roughly analogous to #include <stdlib.h> in C/C++ where it searches the include path you give the compiler to find that header file.

I believe because your paths are set up in your /config/environment.rb file:

require File.join(File.dirname(__FILE__), 'boot')

Sure. In /config/boot.rb (called in environment.rb) the RAILS_ROOT is set up as so:

RAILS_ROOT = "#{File.dirname(__FILE__)}/.." unless defined?(RAILS_ROOT)

Which allows you to require things from the root I believe. Hope that's the answer anyway!

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!