0
我正在开发非rails ruby项目。项目结构是类似下面的东西:要求所有基于祖先的文件
--Root
-Base
-xyz_base.rb
-abc_base.rb
-Entities
-A
-base
-a_base.rb
-a.rb
-B
-b.rb
-C
-c.rb
-app.rb
在app.rb我有类似如下:
Dir['./**/'].each {|dir| $:.push dir}
Dir["./**/*.rb"].each {|rb| require rb}
所以,所有的文件都包含在项目(abc_base.rb
,a.rb
,...)。
问题是,它不知道应该在另一个之前需要哪一个。例如,在a.rb
之前需要a_base.rb
。但是,在行动中,它首先要求a.rb
和a_base.rb
我得到uninitialized constant Entities::A::Base (NameError)
或cannot load such file
。
我已看过autoload
,require_all
宝石。另一个解决方案是在每个文件中放入require以仅需要所需的文件。但文件太多了。
有什么想法吗?
这个'require'项目的算法是什么?在目录的实际内容之前应该需要子目录内容? – IvRRimUm
看看[Bundler](http://bundler.io/)。 –