2010-09-28 7 views
0

J'écris une application qui tire des valeurs d'une feuille de calcul Excel, puis stocke ces valeurs dans un hachage en utilisant le numéro de version comme une clé. Tout semble fonctionner correctement jusqu'à ce que j'essaie de récupérer l'information du hachage. Voici le code qui construit le hachage:Accéder à un tableau dans un hachage dans Ruby

@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 

Lorsque je tente de récupérer les informations d'une version 01-2 à l'aide user_variables_hash['01-2'][0][0], il produit une erreur qui indique:

méthode non définie « [] 'for nil: NilClass (NoMethodError)

Toute aide serait grandement appréciée.

Merci.

Répondre

0

Pour chaque numéro de version, vous créez un nouveau hachage vide (user_variables_hash = {} ), puis vous insérez le numéro de version dans ce nouveau hachage. Ce n'est certainement pas ce que vous voulez.

Vous souhaitez probablement initialiser user_variables_hash une fois avant chaque boucle.

+0

.... Je ne suis pas vraiment sûr de comment j'ai réussi à manquer ça. Je pense que je regardais l'écran depuis si longtemps que tout commençait à se mélanger. Merci pour l'aide en soulignant une telle erreur stupide. * Facepalm * –

Questions connexes