Я ищу для извлечения довольно большого количества данных из электронных таблиц для приложения Rails, но я делаю извлечение через консоль Rails.Извлечь данные из таблицы Excel в базу данных в Ruby
У меня есть таблица под названием instititutes
в моей базе данных, которая в настоящее время насчитывает около 170 записей. Я нашел гораздо лучшие данные в электронной таблице с записями c.1000 и хочу импортировать их в мою базу данных, но пропустить любые записи, которые уже соответствуют.
Я думал, что использование метода find_or_create_by будет лучшим для этого. Таблица содержит UKPRN
и NAME
в качестве заголовков, а таблица имеет ukprn
и name
как соответствующие столбцы (а также другие).
Используя камень Roo, я получил это до сих пор:
require 'roo'
xlsx = Roo::Spreadsheet.open(File.expand_path('../Downloads/UKPRN.xlsx'))
xlsx.default_sheet = xlsx.sheets.last
header = xlsx.row(1)
xlsx.each_row do |row|
row = Institute.find_or_create_by(UKPRN: ukprn , NAME: name)
end
Это дает ошибку NameError: unitialized constant UKPRN
. Я все еще возвращаю голову в Ruby, поэтому любая помощь будет оценена по достоинству.
Я использую Ruby, Rails 2.2.3 и 5.0.1
Edit:
p row
показывает:
["UKPRN", "NAME"]
[10000291, "Anglia Ruskin University"]
[10000385, "The Arts University Bournemouth"]
[10000571, "Bath Spa University"]
[10000712, "University College Birmingham"]
[10000824, "Bournemouth University"]
[10000886, "The University of Brighton"]
[10000961, "Brunel University London"]
...etc
Что выводит 'p row' внутри' each_ row'? Без 'row = Institute ...' –