🐕
Rails|csvファイルを利用したテストデータの挿入
個別のデータを挿入する場合は、こちらの記事を参照。
csvファイルを作成する
まず、テストデータとして挿入したいデータを作成する。
エクセルやGoogleスプレッドシートで元データを作成し、「csvで保存」をする。
作成したcsvファイルは db/scv
ディレクトリに保存する。
seeds.rbの編集
次に、 seeds.rb
を編集する。
seeds.rb
# - - - - - - - - - - コース情報 - - - - - - - - - -
require "csv"
CSV.foreach('db/csv/courses.csv', headers: true) do |row|
Course.create!(
school_id: row['school_id'],
name: row['name'],
admission_month: row['admission_month'],
duration: row['duration']
)
end
require "csv"
scvファイルの読み込み。
CSV.foreach
指定されたCSVファイル('db/csv/courses.csv')を行ごとに読み込むためのメソッド。
headers: true
scvの最初の行をヘッダーとして扱うオプション。
do |row|
csvファイルの行ごとに繰り返し処理を開始する。
Course.create!(...)
Courseモデルの新しいレコードを作成し、保存する。
create
ではなくcreate!
を使用することで、
バリデーションエラーが発生した場合にログに表示されるようにする。
school_id: row['school_id'], ...
初めのschool_id
はカラム名を表している。
row['school_id']
はcsvファイルの各行からschool_id
列のデータを取得することを表している。
Discussion