エラー状況
RSpecにてモデルのテストを実行していたとき、下記エラーが発生。
translation missing: ja.activerecord.errors.models.post.attributes.user.required
###調べた内容
①誤字脱字の確認
②作業ファイルの指定漏れ
③ググる
④エラー文の解析
①、②は問題なし。そもそも①と②が該当する場合のエラー文では無いよね!?
③を一通り試したが、該当する情報は出てこず。
ということは④から導き出すしか無ので解析開始!
仮説
translation missingというエラー文を翻訳すると**[欠訳]**となる。
この[欠訳]というキーワードから立てた仮説は、翻訳がかけているということ。
となると、日本語が対応していないとも仮説できる。
さらに深掘りすると、**[deviseを日本語訳したファイルがない]**というエラーだった。
解決方法
仮設検証結果は、おおよそ的中しているようなので解決方法を記述。
class Application < Rails::Application
~省略~
#以下で日本語化の設定をする
config.i18n.default_locale = :ja
end
次にdeviseの日本語化。
「config/locales」フォルダに、「devise.ja.yml」および「ja.yml」という名前のファイルを新規作成します。
下記のサイトに記述内容が掲載されているので、それぞれ中身を丸ごとコピーして貼り付け、保存しましょう。
devise.ja.yml▼
https://github.com/tigrish/devise-i18n/blob/master/rails/locales/ja.yml
ja.yml▼
https://github.com/svenfuchs/rails-i18n/blob/master/rails/locale/ja.yml
以上で解決です!
ただ、日本語化したのでテストの際のエラー文言も日本語で書く必要があるので注意。