我正在尝试使用以下代码从Ruby文件加载目录中的所有ruby文件:
Dir["#{File.dirname(__FILE__)}/pages/*_page.rb"].each { |r| load r }
但是,在这个目录中,我有一个继承自Class Foo的Class Bar。
Class Bar < Foo
当我运行程序时,出现错误:未初始化的常量Foo(NameError)。
我认为这是因为它试图加载Bar类,但还没有加载Foo类。
我已经尝试在Bar中明确要求Foo,但随后我将收到警告,因为Foo将被加载两次。
如何加载目录中的所有文件,以便自动需要任何所需文件。
答案 0 :(得分:1)
由于没有真正的方法来强制使用循环时需要文件的顺序,因此首先必须require
在循环之前定义Foo的文件。
require "./pages/file_that_defines_foo.rb"
Dir["#{File.dirname(__FILE__)}/pages/*_page.rb"].each { |r| load r }