3行で
- テーブルはあらかじめ作っておく
- テーブルに入れたい内容を書いたcsvデータを作る
- seeds.rbに読み込む記述を書く
テーブルを作る
今回の場合 band
というテーブルを作ります。
名前と担当楽器が記されたものです。
テーブルの作り方は割愛します。
id | name | instrument |
---|---|---|
csvデータを作る
テーブルに入れたいデータをExcelやGoogleスプレッドシートに書いて、csv形式で保存します。
具体的にはこういうもの
上記には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
を実行させて反映