2010-09-28 206 views
0

访问散列内的阵列我正在写拉动值出来的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版本的信息,它产生一条错误:

未定义的方法“[] '为零:NilClass(NoMethodError)

任何帮助将不胜感激。

谢谢。

回答

0

对于每个版本号,您将创建一个新的空散列(user_variables_hash = {} ),然后将版本号插入到该新散列中。这几乎肯定不是你想要的。

你可能想每个环前初始化一次user_variables_hash

+0

....我真的不知道我是如何设法错过。我想,我刚刚在屏幕这么久,这一切都开始融合在一起盯着。感谢您指出了这样一个愚蠢的错误的帮助。 *捂脸* – 2010-09-28 16:04:50