Ruby on Rails
Importieren Sie ganze CSV-Dateien aus einem bestimmten Ordner
Suche…
Einführung
Nehmen wir an, wir haben in diesem Beispiel viele Produkt-CSV-Dateien in einem Ordner. Jede CSV-Datei muss von unserer Konsole aus unsere Datenbank hochladen und einen Befehl schreiben. Führen Sie den folgenden Befehl in einem neuen oder vorhandenen Projekt aus, um dieses Modell zu erstellen.
Lädt CSV vom Konsolenbefehl hoch
Terminalbefehle:
rails g model Product name:string quantity:integer price:decimal{12,2}
rake db:migrate
Lates erstellen Controller.
Terminalbefehle:
rails g controller Products
Controller Code:
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
Modell:
class Product< ApplicationRecord
def self.import(file)
CSV.foreach(file.path, headers: true) do |row|
Product.create! row.to_hash
end
end
end
routen.rb
resources :products
app / config / application.rb
require 'csv'
Öffnen Sie nun Ihre Entwicklung 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
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow