nil:NilClass ruby​​ 的未定义方法`gsub'

问题描述

我是 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