📘

[rails]seedについて

2023/02/26に公開

seed.rb について

開発段階で動作確認用に初期データを入れるために使用されるもの。
処理が正しく動いているか確認するために、DBにデータを用意しておく際に使用する。
[場所]DBフォルダの中にseed.rbがある!

=> 処理の確認で、作成中に自分で作って確認することや、
rails cで作成して確認することは不可能ではないが、
手間がかかるし大きい処理になればなるほど、できなくもなってくる。
よって、seedを使用した初期dataの挿入がいい!!!

seedファイルの使用メリット

  • 動作確認用に初期データを入れられる
  • 大量に作成可能
  • DBをリセットしてもseedに初期データがあるから使える

書き方

今回はadmin(管理者)を作成していきたいと思います。
adminはmailと名前でログインできるものとします。

ではまず、一人作ります。基本的な型はこれ。

(モデル名).create(データの値, , , )

上記した今回の条件で記述してみると以下のようになる。

adminUser1 = Admin.create!(
    email: 'test@test.com',
    password: 'chocolate-g',
)
  • create!
    create! メソッドは、DBにレコードを作成し、もし何らかの理由でレコード作成に失敗した場合には
    例外を発生させ、プログラムの実行を中止するもの。
    => dbの細かい処理が必要な場合に使用

もしたくさん生産したいなら?

100人のユーザーを作りたい!
=> eachで作成

  (1..100).each do |i|
    User.create(name: "名前#{i}",age: "年齢#{i}")
  end

でも便利なgemもある!!!

gem: faker

実際によりリアルに存在しそうなデータをランダムで生成してくれるgem。


seedデータの投入

rake db:seed実行!

Discussion