在Ruby中访问散列中的数组

在Ruby中访问散列中的数组,ruby,arrays,hash,Ruby,Arrays,Hash,我正在编写一个应用程序,它从Excel电子表格中提取值,然后使用版本号作为键将这些值存储在散列中。在我尝试从散列中检索信息之前,一切似乎都正常工作。以下是构建哈希的代码: @version_numbers.each do |version| user_variables = Spreadsheet.open "#{version}.xls" #Opens excel sheet for all versions present user_variables_sheet = user

我正在编写一个应用程序,它从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 nomethoderor

任何帮助都将不胜感激


谢谢。

对于每个版本号,您正在创建一个新的空哈希用户\u variables\u hash={} 然后将版本号插入到新的散列中。这几乎肯定不是你想要的


您可能希望在每个循环之前初始化用户变量散列一次。

。。。。我真的不知道我是怎么错过的。我想我只是盯着屏幕看了太久,所有的一切都开始融合在一起。谢谢你帮我指出这样一个愚蠢的错误。掌纹