🙆‍♀️

【Rails】seeds.rb作成

2023/10/26に公開

スクールのチーム開発フェーズで存在感をアピールしてくれた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メソッドについてはについては、同じチームの方の記事がとても分かりやすいので参考にしていただければと思います。
https://zenn.dev/fujii_kazuki/articles/fb8caf00d12826

また、商品情報の写真データを複数載せる際に発生したエラーについては以前作成した記事にありますのでこちらをご参照ください。
https://zenn.dev/sudoukky/articles/9e64fb525e1b5b

Discussion