Ruby on Rails
Importa interi file CSV da una cartella specifica
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