Ruby on Rails
Importar archivos CSV completos desde una carpeta específica
Buscar..
Introducción
En este ejemplo, digamos que tenemos muchos archivos CSV de productos en una carpeta. Cada archivo CSV necesita cargar nuestra base de datos desde nuestra consola, escriba un comando. Ejecute el siguiente comando en un proyecto nuevo o existente para crear este modelo.
Cargas CSV desde comando de consola
Comandos de la terminal:
rails g model Product name:string quantity:integer price:decimal{12,2}
rake db:migrate
Lates crea el controlador.
Comandos de la terminal:
rails g controller Products
Código del controlador:
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
Modelo:
class Product< ApplicationRecord
def self.import(file)
CSV.foreach(file.path, headers: true) do |row|
Product.create! row.to_hash
end
end
end
rutas.rb
resources :products
app / config / application.rb
require 'csv'
Ahora abre tu console
desarrollo y run
=> ProductsController.new.create #=> Uploads your whole CSV files from your folder directory
Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow