Zoeken…


Invoering

Laten we in dit voorbeeld zeggen dat we veel CSV-productbestanden in een map hebben. Elk CSV-bestand moet onze database vanuit onze console uploaden en een opdracht schrijven. Voer de volgende opdracht uit in een nieuw of bestaand project om dit model te maken.

Uploadt CSV vanaf console-opdracht

Terminalopdrachten:

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

Lates maken controller.

Terminalopdrachten:

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 

Model:

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'

Open nu je ontwikkeling 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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow