Ricerca…


introduzione

In questo esempio, diciamo che abbiamo molti file CSV del prodotto in una cartella. Ogni file CSV deve caricare il nostro database dalla nostra console scrivere un comando. Eseguire il seguente comando in un progetto nuovo o esistente per creare questo modello.

Carica CSV dal comando della console

Comandi del terminale:

rails g model Product name:string quantity:integer price:decimal{12,2}
rake db:migrate

Lates crea controller.

Comandi del terminale:

rails g controller Products

Codice controller:

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 

Modello:

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

app / config / application.rb

require 'csv'

Ora apri la tua console sviluppo ed run

=> ProductsController.new.create #=> Uploads your whole CSV files from your folder directory


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow