11
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Rails】seedとFakerでランダムなサンプルデータを作成

Posted at

#はじめに
データベースに予め大量のデータを入れておきたいとき手動では大変です。
この記事ではseedとFakerを使って、自動でランダムなサンプルデータを作成する方法を紹介します。

####seedについて
seedファイルは、データベースにあらかじめ入れておきたいデータを定義しておくものです。
データをあらかじめ定義しrails db:migrateすることで、簡単にDBへデータを投入できます。

####gem 'faker'について
Fakerとはランダムな値を入れられるgemです。
 Gemfileの中にgem 'faker'を追記し、 bundle installコマンドを実行することで使用出来る様になります。

詳しくは下記の公式ページを参照してください。
【公式】
https://github.com/faker-ruby/faker

#開発環境
ruby 2.6.5
Rails 6.0.3.4
faker 2.15.1
gimei 0.5.1

#fakerインストール

Gimile
gem 'faker'
gem 'gimei'

gimeiは、日本人の名前や、日本の住所をランダムに返すGemです。

ターミナル
bundle install

今回demosデーブルに200件のダミーデータを追加します。

db/seeds.rb
require 'faker'

200.times do |n|
  sample_name = Gimei.kanji
  sample_kana = Gimei.katakana
  sample_email = Faker::Internet.email
  sample_tel = Faker::Number.number(digits: 11)
  start_time = Faker::Date.forward(50)
# start_time = Faker::Date.between(from: '2021-01-01', to: '2021-04-30') #期間を限定することもできます。
  Demo.create!(
    sample_name:         sample_name, 
    sample_kana:         sample_kana, 
    sample_email:        sample_email, 
    sample_tel:          sample_tel, 
    sample_product_name: "京都ツアー", 
    price:               "19600", 
    num_id:              "2", 
    start_time:          start_time, 
    sample_id:           "1", 
    created_at:          "2021-01-01 00:00:00",
    updated_at:          "2021-01-01 00:00:00"
  )
end
ターミナル
rails db:seed

データベースを確認します。
スクリーンショット 2021-01-13 8.32.33.png
サンプルデータ作成完了です!

#まとめ
fakerの使い方さえわかれば非常に簡単です。
このデータを検索機能のサンプルにするのも良いと思います。

###最後に
同じ様に悩んでる方々の助けになればと思い、記事を投稿しております。
それでは、また次回お会いしましょう〜

#参考
【公式】
https://github.com/faker-ruby/faker

11
8
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
8

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?