我正在编写一个应用程序,它从Excel电子表格中提取值,然后使用版本号作为键将这些值存储在哈希中。在我尝试从哈希中检索信息之前,一切似乎都正常工作。以下是构建哈希的代码:
@version_numbers.each do |version|
user_variables = Spreadsheet.open "#{version}.xls" #Opens excel sheet for all versions present
user_variables_sheet = user_variables.worksheet 0 #Loads worksheet
user_variables_hash = {}
user_variables_sheet.each 1 do |row| #Skips the first row containing titles
part_number = row[0].to_i
serial = row[1].to_i
(user_variables_hash[version] ||= []) << [part_number, serial]
end
end
当我尝试使用user_variables_hash['01-2'][0][0]
从01-2版本检索信息时,会产生错误,指出:
未定义的方法'[]'为nil:NilClass(NoMethodError)
非常感谢任何帮助。
感谢。
答案 0 :(得分:0)
对于每个版本号,您将创建一个新的空哈希(user_variables_hash = {}
),然后将版本号插入到新哈希中。这几乎肯定不是你想要的。
您可能希望在每个循环之前初始化user_variables_hash
。