Требуется импортировать данные CSV из zip-файла в модель моего продукта с использованием activerecord-import и rubyzip gem.
Этот код работает (загрузите zip и отобразите имя csv)
desc "Import products data from web"
task import_product: :environment do
url = "https://example.com"
dir = "db/example_zip.zip"
File.open(dir, "wb") do |f|
f.write HTTParty.get(url).body
end
Zip::File.open(dir) do |zip|
zip.each do |entry|
entry.name
end
end
end
В "цикле zip.each" я пробовал это:
items = []
CSV.foreach(entry, headers: true) do |row|
items << Item.new(row.to_h)
end
Item.import(items)
У меня следующая ошибка TypeError: нет неявного преобразования Zip :: Entry в String
Согласно этому руководству:https://mattboldt.com/importing-massive-data-into-rails/
Каков наилучший способ обновить данные модели моего продукта с помощью этого CSV?Нужно ли мне читать файл в память (entry.get_input_stream.read) или сохранять файл и затем импортировать его?
Спасибо за помощь