Rails отображает пользовательские столбцы файла Excel в столбцы БД - PullRequest
0 голосов
/ 14 октября 2019

Я использую Roo для анализа моих CSV-файлов для импорта. Все работает отлично, но иногда конечные пользователи меняют заголовки столбцов в файле Excel. Например, если столбец db равен first_name, пользователи могут изменить заголовок в файле Excel на firstname. В таком случае легко использовать метод alias_attribute для сопоставления заголовка с правильным именем столбца БД.

Однако как мне справиться с ситуацией, когда заголовок столбца в Excel очень длинный? Например, что-то вроде the user's first name and last name Метод alias_attribute не может использоваться здесь:

alias_attribute :first_name, :the user's first name and last name

Как бы вы проанализировали подробные или длинные заголовки столбцов в CSV-файле для сопоставления с обычным именем столбца БД?

Вот моя реализация roo:

def load_imported_users
    spreadsheet = open_spreadsheet
    header = spreadsheet.row(2)
    (3..spreadsheet.last_row).map do |i|
      row = Hash[[header, spreadsheet.row(i)].transpose]
      user = User.find_by_national_id(row["national_id"]) || User.new

      user.attributes = row.to_hash
      user
    end
  end

Любая помощь будет оценена.

...