Ссылочный номер столбца с использованием smarter_csv в Rails 5 - PullRequest
0 голосов
/ 07 февраля 2019

В настоящее время я использую гем smarter_csv для импорта данных из CSV-файлов в мое приложение Rails.В идеале я хотел бы получить доступ к столбцам, импортированным по номеру, а не по имени заголовка, поскольку имена заголовков могут быть несколько непоследовательными при поступлении данных.

Кто-нибудь имел успех в этом?Что-то вроде приведенного ниже кода было бы идеально.

SmarterCSV.process(file,
      col_sep: ',',
      force_simple_split: false,
      downcase_header: false,
      row_sep: :auto) do |row|

      row[1] #get data from whatever column number here

end

Строка возвращается в виде хэша, но я не думаю, что могу рассчитывать на последовательность хэш-последовательности.Заранее спасибо!

1 Ответ

0 голосов
/ 07 февраля 2019

Я не проверял это, но, возможно, попробуйте Пользовательские преобразования заголовков через Procs

change_headers_to_position = Proc.new {|headers|
  headers.each_with_index.map{|h, index| index + 1 }
}

options = {
  header_transformations: [:none, change_headers_to_position ]
}
data = SmarterCSV.process('/tmp/test.csv', options)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...