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