Ruby on Rails
Zaimportuj całe pliki CSV z określonego folderu
Szukaj…
Wprowadzenie
W tym przykładzie załóżmy, że mamy wiele plików CSV produktu w folderze. Każdy plik CSV musi załadować naszą bazę danych z naszej konsoli, napisać polecenie. Uruchom następujące polecenie w nowym lub istniejącym projekcie, aby utworzyć ten model.
Przesyła plik CSV z polecenia konsoli
Polecenia terminalowe:
rails g model Product name:string quantity:integer price:decimal{12,2}
rake db:migrate
Lates tworzy kontrolera.
Polecenia terminalowe:
rails g controller Products
Kod kontrolera:
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
trasy.rb
resources :products
app / config / application.rb
require 'csv'
Teraz otwórz console
programistyczną i run
=> ProductsController.new.create #=> Uploads your whole CSV files from your folder directory
Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow