ruby - NoMethodError 但做了'require_relative'
问题描述
我做了'requir_relative',但仍然得到NoMethodError。
有 2 个 ruby 文件,在“run.rb”下我有这个
class Run
def separate(data)
hash_block = []
(0...data.count).each do |i|
f = data[i].split('|')
hash_block[i] = Hashing.new(f[0].to_i, f[1], f[2], f[3], f[4])
end
hash_block
end
end
然后在主文件中,我做了这些:
require_relative 'run'
...some codes...
to_separate = IO.readlines(ARGV[0])
separated = separate(to_separate)
...some codes...
但我仍然得到这个:
in `block in <main>': undefined method `separate' for main:Object (NoMethodError)
如果我剪切该方法并将其粘贴到主文件中,它将按预期工作,但这是我想避免的。
解决方案
您需要该文件,但在该文件中您有一个类定义。separate
在该类中(这是一个实例方法),因此您需要一个对象来调用该方法。
separated = Run.new.separate(to_separate)
推荐阅读
- android - 我想以编程方式不断创建带有单选按钮的单选组
- java - 如何为pdf添加水印(itext7.1.2 java)
- django - DRF 如何为基于 JWT 的身份验证关闭 CSRF-token 检查?
- php - 如何更改 wordpress 搜索小部件中的提示文本
- java - 来自验证器类的消息没有出现在 xpage 的消息控件中?
- java - 在单个活动中使用片段构建整个 Android UI?
- sql - 将结果附加到具有不同列的两个选择查询(显示一个输出)?
- c++ - 为什么我不能使用 push_back 功能?
- java - 异步方法中的 Spring Boot while 循环停止应用程序
- legend - 我想删除 1/5 并在谷歌饼图中显示所有图例