我是Ruby的新手
MakModule.rb
module Display
class Multiply
def Multiply.mul(first, second)
return first * second
end
end
end
MakRequire1.rb
require "Display"
puts Multiply.mul 5,6
MakRequire2.rb
require "MakModule.rb"
puts Multiply.mul 5,6
这两个文件都给我下面的错误
ruby: No such file or directory -- makRequire (LoadError)
我该如何更正我的代码?
答案 0 :(得分:4)
试试这个,
require File.join(File.dirname(__FILE__),'MarkModule')
答案 1 :(得分:4)
您在此处发布的代码根本不可能生成该错误消息。错误消息显示您尝试require
名为makRequire
的文件,但该文件名不会出现在您发布的代码中的任何位置。
如果没有产生实际错误的实际代码,则无法回答您的问题。但是,这里有一些一般提示:
每当计算机告诉你它无法找到某些东西时,在99%的情况下,问题是计算机告诉它找不到的东西实际上并不存在。
因此,在这种情况下,计算机会告诉您它找不到名为makRequire.rb
的文件,最可能的解释是makRequire.rb
实际上并不存在。因此,您需要检查的第一件事是: makRequire.rb
(注意大小写和文件扩展名)实际存在?因为如果它不存在,那么计算机找不到它的原因应该是相当明显的。
在99%的 rest 案例中,问题是计算机正在寻找的东西存在,但计算机正在查找错误的地方。因此,在确认makRequire.rb
实际 存在之后,您需要确保该文件所在的目录位于Ruby的$LOAD_PATH
中,如果它不是' t,您需要将该目录添加到Ruby的$LOAD_PATH
。或者,如果您希望require
文件相对于执行要求的文件的路径,则需要使用require_relative
而不是require
。
要检查的第三件事是,拥有ruby
进程的用户是否具有足够的权限来访问文件makRequire.rb
,它所在的目录及其所有父目录。
答案 2 :(得分:1)
尝试require './MakModule'
,因为.
是当前目录。
答案 3 :(得分:0)
require 'MakModule'
答案 4 :(得分:0)
您可以要求位于同一目录中的文件。要使用模块,您通常会在类定义中include
模块。因此,您永远不会需要Display
,您需要包含Display
的文件(通常不带.rb扩展名)。