Ruby on Rails
Импортировать все CSV-файлы из определенной папки
Поиск…
Вступление
В этом примере, скажем, у нас есть много файлов CSV продукта в папке. Каждый CSV-файл должен загрузить нашу базу данных с нашей консоли, напишите команду. Для создания этой модели выполните следующую команду в новом или существующем проекте.
Загрузка CSV из команды консоли
Команды терминала:
rails g model Product name:string quantity:integer price:decimal{12,2}
rake db:migrate
Поздно создайте контроллер.
Команды терминала:
rails g controller Products
Код контроллера:
class HistoriesController < ApplicationController
def create
file = Dir.glob("#{Rails.root}/public/products/**/*.csv") #=> This folder directory where read the CSV files
file.each do |file|
Product.import(file)
end
end
end
Модель:
class Product< ApplicationRecord
def self.import(file)
CSV.foreach(file.path, headers: true) do |row|
Product.create! row.to_hash
end
end
end
routes.rb
resources :products
приложение / Config / application.rb
require 'csv'
Теперь откройте свою console
разработки и run
=> ProductsController.new.create #=> Uploads your whole CSV files from your folder directory
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow