我一直在尝试获取一个 ruby 文件,以要求另一个 ruby 文件,我觉得我快疯了。我的设置如下
'/raid1/ruby-code/benchmark/'中的两个文件
指挥官
标杆
Benchmarker是此时的主要程序,想要使用CommandRunner,我尝试了很多不同的方法,但没有一个起作用。以下是我在Benchmarker开头放置的所有内容的列表
需要“CommandRunner”
需要'./CommandRunner'
$ LOAD_PATH.unshift File.expand_path(File.dirname($ PROGRAM_NAME))
需要“CommandRunner”
$ LOAD_PATH.unshift File.expand_path(File.dirname($ PROGRAM_NAME))
需要'./CommandRunner'
我还使用require_relative尝试了所有上述排列。我已经尝试过将文件加载到emacs内部的irb中,并且已经在命令行中进行了尝试。在irb的某一时刻,它将使用require'CommandRunner'加载一次,然后加载,直到我将其切换回'./CommandRunner',然后再次加载。
我实际上有错误的说法
`require_relative':没有要加载的文件-
/raid1/ruby-code/benchmark/CommandRunner(LoadError)
这是文件的正确路径!
从那以后,我将其切换为加载状态,这似乎正在起作用,我看到的是奇怪的行为,但这也许就是我自己。有谁知道这里会发生什么?
最佳答案
文件的名称是CommandRunner而不是CommandRunner.rb吗? ruby 文件的标准命名约定是使用小写和下划线,因此,即使类名是CommandRunner,文件也将是command_runner.rb,然后要求'command_runner'应该起作用。