我目前正在通过 Root 的Rubyist进行研究。到目前为止很棒的书。我被一些我不太喜欢 ruby 的东西卡住了。我有两个文件
在ModuleTester.rb中
class ModuleTester
include MyFirstModule
end
mt = ModuleTester.new
mt.say_hello
在MyFirstModule.rb中
module MyFirstModule
def say_hello
puts "hello"
end
end
当我运行“ruby ModuleTester.rb”时,收到以下消息:
ModuleTester.rb:2:在
<class:ModuleTester>': uninitialized constant ModuleTester::MyFirstModule (NameError) from ModuleTester.rb:1:in
中根据我在网上找到的内容,当前目录不在 namespace 中,因此看不到该文件。但是,include语句不带字符串让我给出路径。由于include语句和require语句的作用不同,因此我绝对迷失了方向
关于如何获取包含语句以识别模块的信息。我浏览了其他问题,但它们似乎都在使用require语句。任何提示,不胜感激。
最佳答案
您使用require
而不是include
加载文件。 :-)
首先,您必须require
包含要include
的模块的文件。然后,您可以include
模块。
如果您使用的是Rails,则先自动对正确的文件require
进行操作具有一定的魔力。但是否则,您必须自己做。
关于Ruby,包括当前目录中的模块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6543368/