tyoshikawa1106のブログ

- Force.com Developer Blog -

Rails:gemパッケージ『faker』を試してみました

gemパッケージのfakerを利用するとテストデータを簡単に用意できるみたいなので試してみました。

使い方

Gemfileに次のコードを追加してbundle installを実行。

gem 'faker', '~>  1.5.0'

f:id:tyoshikawa1106:20150909150448p:plain


サンプルユーザーを作成するRakeタスクを用意します。Rakeタスクはlib/tasksディレクトリに置けばいいみたいです。

lib/tasks/sample_data.rake
namespace :db do
  desc "Fill database with sample data"
  task populate: :environment do
    User.create!(name: "Example User",
                 email: "example@railstutorial.jp",
                 password: "foobar",
                 password_confirmation: "foobar")
    99.times do |n|
      name  = Faker::Name.name
      email = "example-#{n+1}@railstutorial.jp"
      password  = "password"
      User.create!(name: name,
                   email: email,
                   password: password,
                   password_confirmation: password)
    end
  end
end

f:id:tyoshikawa1106:20150909150917p:plain


sample_data.rakeを作成したらターミナルで次のコマンドを実行していきます。

$ bundle exec rake db:reset 
$ bundle exec rake db:populate
$ bundle exec rake db:test:prepare

f:id:tyoshikawa1106:20150909151343p:plain

補足

rake db:resetを実行するとDBに登録済みのデータ削除されてしまうので残しておきたい場合は実行しないこと。


これだけでユーザの大量のテストデータを簡単に登録できました。
f:id:tyoshikawa1106:20150909151440p:plain


今回の手順の詳細はこちら。