ruby on rails — получение данных таблицы csv

#ruby #ruby-on-rails-5

#ruby #ruby-on-rails-5

Вопрос:

у меня возникли проблемы с получением данных из таблицы csv

это моя таблица csv

product.csv

это мой код в моем файле модели, где он был вызван в моем методе post (метод create в контроллере)

 map = {}
table = CSV.read(File.open(csvpath, "r:bom|utf-8"), :headers => true) 
table.each do |row| 
    map[row['Sku Code']] = row['SKU Mfg Code']  
end

puts map
 

теперь проблема в том, что мои строки [‘Sku Code’] и строка [‘SKU Mfg Code’] не смогли найти соответствующие значения в каждой строке

по сути, я создаю словарь, ключом которого является «код sku», а его значением является «Код mfg SKU».

кто-нибудь может мне здесь помочь?

Комментарии:

1. Я пишу код на ruby в VS code в Windows … кто-нибудь может порекомендовать, какой лучший форматировщик для форматирования кода ruby … что-то вроде black для кода python и более красивого форматированного кода

2. Я пробовал rufo, но он не работает

Ответ №1:

Вы можете попробовать использовать CSV.foreach : https://ruby-doc.org/stdlib-2.6.1/libdoc/csv/rdoc/CSV.html#method-c-foreach

 ...
...
CSV.foreach("path/to/file.csv", :headers => true) do |row|
  map[row['Sku Code']] = row['SKU Mfg Code']
end
...
...