0

我创建了一个应该绘制的模块。我已经在我的脚本中包含了模块,当我尝试调用一个方法时,我得到:

undefined method `draw_lines' for Draw:Module (NoMethodError) in Ruby

这是代码:

module Draw
  def draw_lines
    # stuff. 
  end
end

require './draw'
Draw::draw_lines # undefined method `draw_lines' for Drawer:Module (NoMethodError) in Ruby

此外,很高兴知道,为什么我们需要这样做require './draw',而它不允许我这样做require 'draw'

4

1 回答 1

0

当您在 Ruby 中定义模块时,您想要访问它的方法的方式是在模块上声明方法

module Draw
  def Draw.draw_lines
    puts "hello"
  end
end
>> Draw.draw_lines
>> "hello"

此外,为什么您需要编写./Draw而不仅仅是Draw因为它是“路径事物”。但首先我们需要require简要分析一下。

require让你加载和运行一个文件,但比它的兄弟更聪明,load在加载和运行一次之后,它不会像以前那样再次需要/加载它load

所以require需要一个 Ruby 文件的路径,这就是./它的用途,这个点斜杠意味着您想要从same当前文件所在的工作目录中获取一个文件。然后可以将其扩展为../(从上面的一个目录中获取) 等等!

希望这可以帮助!

于 2013-11-12T21:05:10.997 回答