出于抽象目的,我想将一些方法分离到一个模块中,但在测试模块中的第一个函数时出现 nomethod 错误。
函数.rb
module Functions
def avg_ticket(vol,count)
(vol.to_f/count).round(2)
end
end
示例.rb
require_relative 'functions'
vol = 5000
count = 2500
avg_ticket = Functions.avg_ticket(vol,count)
我收到一个函数未定义的方法“avg_ticket”:Module (NoMethodError)
两个文件都位于同一个文件夹中,因此我使用 require_relative
(如果这有影响的话)。这可能是基本的,但是任何人都可以帮助我理解为什么该方法在这里未定义吗?
编辑:将模块函数
更改为有问题的模块函数
请您参考如下方法:
您将模块命名为 functions
,但您正在尝试调用 Functions
。名称区分大小写。另外,无论如何,您都需要使用大写首字母来命名模块。另外,要在模块本身上定义,您需要使用 def self.avg_ticket
,请参阅以下内容:
module Functions
def self.avg_ticket(vol,count)
(vol.to_f/count).round(2)
end
end
并使用它:
p Functions.avg_ticket(2, 25)
> 0.08