🐕
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