我有一个脚本,我想从中调用模块。我希望模块驻留在modules文件夹中。所以我的主脚本有以下一行
require "modules/01httpserver"
我的01httpserver模块位于名为“01httpserver.rb”的文件中,它位于modules文件夹中。该文件包含以下代码。
module 01httpserver
def self.helloworld(name)
puts "Hello, #{name}"
end
end
所以当我运行主脚本并且它试图加载模块文件时,我收到以下错误消息:“`require':无法加载这样的文件 - modules / 01httpserver(LoadError)”
导致这种情况的原因是什么?
答案 0 :(得分:0)
使用require_relative
。像:
require_relative "modules/01httpserver"
答案 1 :(得分:0)
当您调用require
时,它会迭代$LOAD_PATH
变量并尝试在任何路径中查找匹配的文件。我发现将项目根添加到此变量非常有用。在主文件的顶部添加:
$:.unshift File.dir_name(__FILE__)
然后你可以使用需要的路径相对于根。