Rails не читает колонку Specifi c от CSV - PullRequest
0 голосов
/ 29 апреля 2020

Я пытаюсь прочитать мой CSV-файл в Rails 5.2.3 (Ruby 2.6.3), и он не читает указанный столбец c.

CSV-файл:

barcode,hardware,title,price
2900007868390,PS4,title1,300
3499550362923,PS4,title2,1800
3499550370973,Nintendo Switch,title3,5000

and so on...

Код:

csv = CSV.read('path/to/my_csv.csv', headers: true)
csv.each do |row|
  puts "#{row['barcode']}, #{row['hardware']}, #{row['title']}, #{row['price']}"
end

Результат:

, PS4, title1, 300
, PS4, title2, 1800
, Nintendo Switch, title3, 5000

and so on...

Как вы можете видеть выше, столбец со штрих-кодом по какой-то причине не читается.
Мне удалось получить значение штрих-кода, если я напишу row[0] вместо row['barcode'].
Есть идеи, почему это происходит?

1 Ответ

2 голосов
/ 29 апреля 2020

Это потому, что в моем CSV-файле были спецификации ...
https://en.wikipedia.org/wiki/Byte_order_mark

Приведенный ниже код решил проблему:

csv = CSV.read("resources/games/original_#{date}.csv", 'r:BOM|UTF-8', headers: true)

Спасибо @dimitry_n за вашу помощь!

...