Ruby on Rails
Importeer hele CSV-bestanden uit een specifieke map
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