如何在Ruby中使用模块

时间:2014-03-10 21:30:39

标签: ruby module

我有一个脚本,我想从中调用模块。我希望模块驻留在modules文件夹中。所以我的主脚本有以下一行

require "modules/01httpserver"

我的01httpserver模块位于名为“01httpserver.rb”的文件中,它位于modules文件夹中。该文件包含以下代码。

module 01httpserver
    def self.helloworld(name)
        puts "Hello, #{name}"
    end
end

所以当我运行主脚本并且它试图加载模块文件时,我收到以下错误消息:“`require':无法加载这样的文件 - modules / 01httpserver(LoadError)”

导致这种情况的原因是什么?

2 个答案:

答案 0 :(得分:0)

使用require_relative。像:

require_relative "modules/01httpserver"

http://extensions.rubyforge.org/rdoc/classes/Kernel.html

答案 1 :(得分:0)

当您调用require时,它会迭代$LOAD_PATH变量并尝试在任何路径中查找匹配的文件。我发现将项目根添加到此变量非常有用。在主文件的顶部添加:

$:.unshift File.dir_name(__FILE__)

然后你可以使用需要的路径相对于根。