Ruby on Rails
Importer des fichiers CSV entiers à partir d'un dossier spécifique
Recherche…
Introduction
Dans cet exemple, disons que nous avons beaucoup de fichiers CSV dans un dossier. Chaque fichier CSV doit télécharger notre base de données depuis notre console pour écrire une commande. Exécutez la commande suivante dans un projet nouveau ou existant pour créer ce modèle.
Télécharge le fichier CSV à partir de la commande de la console
Commandes Terminal:
rails g model Product name:string quantity:integer price:decimal{12,2}
rake db:migrate
Les Lates créent un contrôleur.
Commandes Terminal:
rails g controller Products
Code du contrôleur:
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
Modèle:
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'
Maintenant, ouvrez votre console
développement et run
=> ProductsController.new.create #=> Uploads your whole CSV files from your folder directory
Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow