Fakerを利用しダミーデータを作成
掲示板の一覧にダミーデータを投入する。
gem Fakerのインストール。
Fakerはdevelopmentとtest環境にインストールする。
group :development, :test do #... gem 'faker' #... end
bundle installで完了。
データベース上にダミーデータを生成
今回はBoardモデルのダミーデータを20個作る。 データは公式のREADMEからとってくる。
20.times do title = Faker::Games::Pokemon.name body = Faker::Games::Pokemon.move user = User.offset(rand(User.count)).first Board.create!( title: title, body: body, user: user ) end
seedに書いた内容をデータベースへ反映。
$ rails db:seed
データが作成されたか確認。
なぜcreate!を使うのか。
createとcreate!の違い
createの場合はユーザーが無効なときfalseを返す。一方、create!は例外を発生させる(例外が発生した時点で処理が止まる)。よって、デバッグが安易になるのでcreate!を使用したほうがいい。
user = User.offset(rand(User.count)).first
について
- モデル.offset(取得開始位置) 指定位置からレコードを取得。
- rand 引数に整数を渡したら0以上指定した整数未満の整数を返す。
- first 最初のレコードを取得。
20個のダミーデータから0〜19個間でランダムに数字を生成して、最初のレコードを取得している。 User.offset(18).firstなら18以降から最初のUserを取得する。