LoginSignup
5
4

More than 3 years have passed since last update.

シンプルにスプレッドシート(CSV)のデータをテーブルに入れる

Last updated at Posted at 2019-09-02

3行で

  • テーブルはあらかじめ作っておく
  • テーブルに入れたい内容を書いたcsvデータを作る
  • seeds.rbに読み込む記述を書く

テーブルを作る

今回の場合 band というテーブルを作ります。
名前と担当楽器が記されたものです。
テーブルの作り方は割愛します。

id name instrument

csvデータを作る

テーブルに入れたいデータをExcelやGoogleスプレッドシートに書いて、csv形式で保存します。
具体的にはこういうもの

aa0d2818c3a6936c9103d55202e49db8.png

上記にはIDの列がありますが、別に作らなくてもいいです。
作ったcsvファイルを アプリケーション名/db のディレクトリに収納します(ディレクトリの場所は任意です。 アプリケーション名/db/csv とかディレクトリを作って収納してもいいです)。

seeds.rbを編集する

seeds.rb
require "csv"

CSV.foreach('db/band.csv', headers: true) do |row|
  Band.create(
    name: row[1],
    instrument: row[2]
  )
end

解説

  • 上で収納したディレクトリとcsvファイル名を指定します。
  • headers: true という記述を書くとcsvファイルの1行目を無視してくれます(nameとか書いてあるところ)。
  • テーブル名.create
  • テーブルのカラム名: row[csvファイルの左より0から数えた列数を指定(今回の場合[0]だとIDの列になってしまう)]

仕上げ

rake db:seed を実行させて反映

5
4
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
5
4