Я использую 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
Любая помощь будет оценена.