#"Fakerを利用してseedファイルにデータを生成する##
Fakerとは、ランダムな値を生成するGemです。
Gemfile の中に gem 'faker' を追記して、
bundle install コマンドを実行すれば準備完了
a = Faker::Games::Pokemon.nameというコードを記述すると、
変数aの中にポケモンの名前がランダムで一つ入ります。
seeds.rb
9.times do |n|
name = Faker::Games::Pokemon.name
email = Faker::Internet.email
password = "111111"
password_confirmation = "111111"
User.create!(name: name, email: email, password: password, password_confirmation: password_confirmation, admin: false)
end
##I18n::MissingTranslationData: translation missing: en.faker.name.first_name##
Gemファイルを生成し、rails db:seedをを実行すると値を生成できるはずだが
以下のエラーが表示された。
"I18n::MissingTranslationData: translation missing: en.faker.name.first_name"
I18nと記載されているので国際化のエラーだと分かり、以下の修正案にたどり着く
config/initializers/locale.rb (修正前)
I18n.config.available_locales = :ja
I18n.default_locale = :ja
上記が日本語でしか対応していないため、英語表記にも対応させるよう修正します。
以下修正案
I18n.config.available_locales = [:ja, :en]
I18n.default_locale = :ja
上記に修正し、念の為rails db:resetをかけてからrails db:seedを実行
すると、以下のデータが生成されている
#<User id: 2, name: "コンパン", email: "vincent@pagac.org", password_digest: "$2a$12$jjcPvv7fLS4dwd7aVoTrDedMGhRGJHiZA8oRC/EWP6r...", created_at: "2021-08-25 02:46:31", updated_at: "2021-08-25 02:46:31", admin: false>,
#<User id: 3, name: "ゴーリキー", email: "werner_conroy@luettgen-witting.info", password_digest: "$2a$12$mS84t4EHKkblZb1zBN5rvOA.rULv6dqKSj/qrCcx/RU...", created_at: "2021-08-25 02:46:31", updated_at: "2021-08-25 02:46:31", admin: false>,
簡単にデータを生成できるため、テストデータを作る際は活用してみて下さい!