Я создал задачу rake для импорта пользователей из Google Sheet. Поэтому я использую гем 'Roo'. Пока все работает, но я не могу заставить его работать без импорта первой строки (заголовков).
Это мой код:
require 'roo'
namespace :import do
desc "Import users from Google Sheet"
task users: :environment do
@counter = 0
url = 'https://docs.google.com/spreadsheets/d/{mycode}/export?format=xlsx'
xlsx = Roo::Spreadsheet.open(url, extension: :xlsx, headers: true)
xlsx.each do |row|
n = User.where(name:row[0]).first
user = User.find_or_create_by(id: n)
user.update(
name:row[0],
country_id:row[6]
)
user.save!
puts user.name
@counter += 1
end
puts "Imported #{@counter} lines."
end
end
headers: false
не работает; он указан в документах как вариант для.parse
, но вы пытаетесь использовать его в.open
. 13.09.2018.each
из старого проекта, в который я импортировал из CSV вместо электронной таблицы. Я переписал его, но, к сожалению, заголовки все еще импортируются. 13.09.2018xlsx[1..-1].each
13.09.2018NoMethodError: undefined method [] for #<Roo::Excelx:0x00007f9c2858bd50>
13.09.2018