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