7
2

More than 3 years have passed since last update.

国際化エラー I18n::MissingTranslationData: translation missing: en.faker.name.first_name

Last updated at Posted at 2021-08-25

"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>, 

簡単にデータを生成できるため、テストデータを作る際は活用してみて下さい!

7
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
7
2