🙆♀️
【Rails】seeds.rb作成
スクールのチーム開発フェーズで存在感をアピールしてくれたseeds.rbについて軽く復習となります。
seeds.rbとは
webアプリケーションの初期データを生成するためのファイルとなります。このファイルには、データベースに初期データを投入するためのコードを記述します。そのためテスト用のデータや、アプリケーションの初期設定などを記述できます。
使用方法
seeds.rb
ファイルを開き、データベースに初期データを追加する処理を記述する
例:userモデルに1つテーブルを追加する場合
db/seed.rb
User.create(name: 'Tarou', email: 'yamada@taro.com')
上記で記述したデータをデータベースに追加するためには、以下のコマンドを実行する。
rails db:seed
上記2つの流れがseeds.rbファイルに初期データを追加するまでの工程になります。
また、テストを繰り返す工程で追記や変更がある場合は上記流れを始める前にデータベースを完全にリセットして初期状態に戻すことが必要になります。
その際に下記のコマンド入力で一度データベースをリセットします。
rails db:migrate:reset
記述例
実際に僕たちのチームでは、会員情報や商品など1つだけでなくそれぞれ複数のデータを用意したため、seeds.rbファイルの中にループ処理を行ったため、timesメソッド
使用し作成しました。
例:顧客データ
db/seeds.rb
yamada_taro_num.times do |num|
num += 1 #numが「0」スタートなので「1」スタートに調整
Customer.create!(
last_name: "山田",
first_name: "太郎#{num}",
last_name_kana: 'ヤマダ',
first_name_kana: "タロウ",
postal_code: 1000000 + num,
address: "東京都新宿区ズンバタワー#{num}",
telephone_number: 10000000000 + num,
email: "yamada@taro#{num}",
encrypted_password: 'yamadataro',
password: 'yamadataro',
password_confirmation: 'yamadataro',
is_active: true
)
end
上記で使用されているtimesメソッド
についてはについては、同じチームの方の記事がとても分かりやすいので参考にしていただければと思います。
また、商品情報の写真データを複数載せる際に発生したエラーについては以前作成した記事にありますのでこちらをご参照ください。
Discussion