ruby模块中的NoMethodError

ruby模块中的NoMethodError,ruby,module,Ruby,Module,谁能告诉我我遗漏了什么以及为什么我会出现这个错误-> Add:Module(NoMethodError)的未定义方法“addition”如果您希望能够直接调用它,请将其定义为可直接访问的方法: module Add def addition sum=1+2 puts sum end a=Add.addition 或者,您也可以随时使用以下方法对此进行返工: def self.addition # ... end 这将自动将所有mixin类型的方法提升为可直接访问 您还可以

谁能告诉我我遗漏了什么以及为什么我会出现这个错误->


Add:Module(NoMethodError)的未定义方法“addition”

如果您希望能够直接调用它,请将其定义为可直接访问的方法:

module Add
def addition
    sum=1+2
    puts sum
end
a=Add.addition
或者,您也可以随时使用以下方法对此进行返工:

def self.addition
  # ...
end
这将自动将所有mixin类型的方法提升为可直接访问

您还可以像这样更有选择性地标记它们:

module Add
  # ...(methods)...

  extend self
end

然后,该方法可用作
Add.addition
,或者如果一些其他模块或类调用
包括Add
,则会混淆类方法和实例方法。你的定义:

module Add
  def addition
    # ...
  end
  module_method :addition
end
定义
Add
实例上的方法,而调用模块
Add
上的方法。如果要定义类/模块方法,需要定义如下:

module Add
  def addition
    ...
  end
end
module Add
  def self.addition
    ...
  end
end