2010-09-28 256 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