Доступ к массиву внутри хеша в Ruby - PullRequest
0 голосов
/ 28 сентября 2010

Я пишу приложение, которое извлекает значения из электронной таблицы 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

Когда я пытаюсь получить информацию из версии 01-2, используя user_variables_hash['01-2'][0][0], выдается ошибка, которая гласит:

неопределенный метод '[]' для nil: NilClass (NoMethodError)

Любая помощь будет принята с благодарностью.

Спасибо.

1 Ответ

0 голосов
/ 28 сентября 2010

Для каждого номера версии вы создаете новый пустой хэш (user_variables_hash = {} ), а затем вставляете номер версии в этот новый хэш.Это почти наверняка не то, что вы хотите.

Вы, вероятно, хотите инициализировать user_variables_hash один раз перед каждым циклом.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...