000
001
010
011
100
101
110
111
任何人都可以告诉我我错过了什么以及为什么我会收到此错误 - >
对于Add:Module(NoMethodError),未定义的方法`add'
答案 0 :(得分:2)
您正在混淆类方法和实例方法。你的定义:
module Add
def addition
...
end
end
在Add
的实例上定义方法,而您在模块Add
上调用了一个方法。如果要定义类/模块方法,则需要定义如下:
module Add
def self.addition
...
end
end
答案 1 :(得分:1)
如果您希望能够直接调用它,请将其定义为可直接访问的方法:
def self.addition
# ...
end
或者你总是可以使用以下方式重做:
module Add
# ...(methods)...
extend self
end
这会自动将所有mixin类型的方法推广为可直接访问。
你也可以选择性地标记它们:
module Add
def addition
# ...
end
module_method :addition
end
然后该方法可以Add.addition
或其他模块或类调用include Add
。