Fakerを使ってみました!(使い方と実行例)
2018/10/043 分で読める記事 — In プログラム
Rails , Gem

はじめに


与沢翼の

「ひと晩マクドナルドで100円で眠る人〈マクド難民〉がいる一方で、私はひと晩で100万円使う」

という名言に刺激をもらった後、マクドナルドで100円コーヒー片手にPCを開く、マクドナルド難民のギノキンです。

今 twitterのポートフォリオを作成していて、user を一つ一つ生成ではなく一気に自動生成したいということが今回やりたいことです。

そこでFakerというgemを使ってみました!!

Fakerとは


先に結論をいうと、

"ダミーデータを自動生成してくれるもの" です。

先ほども述べましたが、自分で一つ一つコンソールで作ったりするのが面倒臭いというような人には嬉しいgemです。

使い方


使い方はとても簡単です。3ステップで使えるようになります。

1. gemを入れる

まず、gemを入れてからgemをインストールしていきます。

# 下記をGemfileに記載してください。
 gem 'faker', :git => 'https://github.com/stympy/faker.git', :branch => 'master'
# Gemfileに記述を終えたらターミナルでインストールします。
$ bundle install

これでFakerが使用できるようになります。

2. seeds.rbに記述する

次に usersテーブルに100件のダミーデータを追加していきます。
今回は name , email , password の3つのカラムにダミーデータを生成します。

<db/seeds.rb>

100.times do |n|
  name = Faker::Pokemon.name
  email = Faker::Internet.email
  password = "password"
  User.create!(name: name,
               email: email,
               password: password,
               password_confirmation: password,
               )
end

また user のnameカラムには name = Faker::Pokemon.name というコードを入れており、これはname変数にポケモンの名前がランダムで入っていきます。

Fakerで生成できるものはGitHubのREADMEに全て載っています。
ワンピースのキャラクターとかまでいろいろあります。

入力が終わったら、ターミナルで下記のコマンドを実行してください。

$ bundle exec rails db:seed


3. seeds.rbのデータが反映されたか確認

記述したseeds.rbのデータが反映されたか確認していきます。

$ bundle exec rails c
irb(main):001:0> User.count
=> 102

データベースでも確認してみると、しっかり生成されておりました。

faker-db.png



終わりに


すごく便利な機能だったので、記事にしてみました。
もし間違っている点等があった場合はご教示いただけますと幸いです。

誰かの糧になれたら幸いです。