我一直在尝试获取一个 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'应该起作用。

10-01 07:16