サーチ…


前書き

この例では、フォルダ内に多数の製品CSVファイルがあるとします。各CSVファイルは、コンソールからデータベースをアップロードしてコマンドを書き込む必要があります。新規または既存のプロジェクトで次のコマンドを実行し、このモデルを作成します。

コンソールコマンドからCSVをアップロードする

ターミナルコマンド:

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

Latesはコントローラを作成します。

ターミナルコマンド:

rails g controller Products

コントローラコード:

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 

モデル:

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'

開発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
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow