seeds.rbとは
初期データを生成してくれるファイルのこと。
このファイルにデータを生成するコードを書いておくだけで、アプリにデータを備えさせることができます。
簡単にテストデータを作ったりできます。
使い方
1.自分が用意したいデータをファイル内でcreateする。
db/seed.rb
#通常の場合
User.create(name: "tanaka")
User.create(name: "sato")
#配列の場合
users = User.create([{name: "tanaka"}, {name: "sato"}])
#大量のテストデータの場合
100.times do |n|
User.create(title: "test{n}人目", content:"test!#{n}回目")
end
2.seedファイルを実行する
$ rails db:seed
###おまけ
実際に存在しそうなデータを生成してくるgem(Faker)があるので一応載せておきます。
1.Gemfileに以下を追記
gem 'faker'
こちらも忘れず実行してください。
$ bundle install
2.seeds.rbを以下のように記述する。
db/seed.rb
100.times do |n|
name = Faker::Name.name
email = Faker::Internet.email
content = "test"
User.create(
name: name,
email: email,
content: content
)
end
3.seedファイルを実行する。
$ rails db:seed
※Fakerの使い方一覧は以下の表参照。
種類 | 役割 |
---|---|
Faker::Name.name | 名前 |
Faker::Internet.email | メールアドレス |
Faker::Address.city | 都市の名前 |
Faker::Food.ingredient | 食べ物の名前 |