问题描述
我是 ruby 新手...我正在尝试使用我在 github 上找到的内容将媒体转换为 scorm 包,但在尝试在命令提示符 undefined method `gsub' for nil:NilClass
中运行脚本时出现错误。我想这可能是由于一个定义的方法。关于如何消除此错误的任何想法?
dir = ARGV.shift.gsub(/\/+$/,'')
index = nil
media = []
Dir["#{dir}/media/*.json"].each do |file|
id = JSON.parse(File.read(file))
base = file.gsub(/\/media\/.*\.json$/,'')
index = "#{base}/index.html"
name = File.basename file
media.push [name,id]
puts "#{name}: #{id}"
end
解决方法
正如错误所说,您是在作为 NilClass
实例的对象上调用方法 gsub
,换句话说,您是在 gsub
上调用 nil
。
错误消息告诉您在哪个方法和哪一行发生这种情况,以及您如何到达该行代码。您必须检查错误消息以找到您在代码中调用 gsub
对象的位置 nil
,然后您必须检查您的代码以找出为什么该对象是 { {1}} 而不是您期望的 nil
。