我目前正在通过 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/

10-13 04:51