PIYO - Tech & Life -

Rubyのダミーデータ生成gem

gem Ruby Rails

Railsアプリケーションの作り始めってローカルのデータベースにデータが全然なくて何かと作りづらいってことありませんか?データがないとページネーション書けないし、なんか雰囲気出ないし、、、みたいな。

Railsの場合はseed.rbにデータ生成プログラムを書いておいて、rake db:seedでデータベースを作れます。そのときにダミーデータ生成gemを使うと幸せになれます。

調べたらけっこうたくさんありました。

このうち、実質的に使えるのは上の2つかなと思います。3番めのfakerはリファクタリングされて高速化したffakerがあれば要らないし、下の2つは古いし用途が微妙に違う…?という感じだったので。

使い方はどちらもシンプルです。Railsに依存しないので単なるRubyスクリプトでも使えます。

ffaker

ドキュメントはfakerのほうが優れているのでそちらを参考にするといいでしょう。

  • Faker::Name.name
  • Faker::Address.city
  • Faker::Internet.email

などなど、カテゴリごとにいろいろ用意されています。あとは、繰り返し呼び出すだけで異なる結果が返ってくるので何も考えなくていいのがいいですね。

# seeds.rb
10.times do
  Post.create(title: Faker::Lorem.sentence(5), author: Faker::Name.name)
end

forgery

こちらも似たようなインターフェースが提供されています。

# seeds.rb
10.times do
  Post.create(title: Forgery::LoremIpsum.sentence, author: Forgery::Name.full_name)
end

どっちでもよさそう

こういう類のgemは本番で使うことはあまりないと思うので適当に選べばよさそう。

日本語データを生成したい場合はこういうのもあります。

tily/ruby-faker-japanese