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