開発環境でアプリケーションを動作させるときなど、ある程度まとまったデータがデータベースにあると便利です。そこで簡単に多種多様なダミーデータをデータベースに投入できるgemライブラリの”faker”がありますので、その基本的な使い方の紹介です。
fakerは日本語対応もできますが、ふりがな(及びフリガナ)には対応していないので、その場合は同様のライブラリのgimeiで対応可能です。
Faker
https://github.com/stympy/faker
動作環境はこちらです
1 2 3 |
ruby 2.4.0 rails 5.1.6 faker 1.9.1 |
gemのインストール
Gemfile
1 |
gem 'faker' |
$ bundle install します
メソッドの確認
こちらから使用したいメソッドを確認できます。
コンソールで試しに、 Faker::Dessertで variety, topping, flavor を数回入力してみると、ランダムにダミーデータを取得できました。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 |
$ rails c 2.4.0 :001 > Faker::Dessert.variety => "Fruit Cake" 2.4.0 :002 > Faker::Dessert.variety => "Cheesecake" 2.4.0 :003 > Faker::Dessert.variety => "Frozen Yogurt" 2.4.0 :004 > Faker::Dessert.topping => "Chocolate Sprinkles" 2.4.0 :005 > Faker::Dessert.topping => "Granola" 2.4.0 :006 > Faker::Dessert.topping => "Rainbow Sprinkles" 2.4.0 :007 > Faker::Dessert.flavor => "French Vanilla" 2.4.0 :008 > Faker::Dessert.flavor => "Funfetti" 2.4.0 :009 > Faker::Dessert.flavor => "Pistachio" |
seeds.rbの編集
それではseeds.rbを編集して、ダミーデータをUserテーブルに投入します。
integerやboolean対応のダミーデータもありますので使用してみます。
db/seeds.rb
1 2 3 4 5 6 7 8 9 |
50.times do User.create( name: Faker::DragonBall.character, email: Faker::Internet.email, postcode: Faker::Address.postcode, #integer address: Faker::Address.city, admin: Faker::Boolean.boolean #boolean ) end |
seeds.rbファイルの実行
rails db:seed コマンドを実行すると、データが投入されます。
1 |
$ rails db:seed |
viewで確認すると次の通りになりました。
fakerの日本語化
fakerのロケールファイル一覧はこちらにありますので、その中からja.ymlをダウンロードして lib/locales/ja.yml に配置します。
以上です!!
日本語のふりがな(及びフリガナ)に対応した、同様のライブラリ”gimei”の記事はこちらです。
https://remonote.jp/rails-gem-gimei-japanese