はじめに
作成した個人アプリのテストを行っていた際にエラーが出てテストに失敗しました。
調べて解決出来たので、備忘のために残しておこうと思います。
エラー内容
Userモデルのバリデーションのテストをしていたら以下のエラーが発生し、テストに失敗しました。
translation missing: ja.activerecord.errors.models.user.attributes.nickname.blank
調べたところ、エラー内容としてはdeviseを日本語訳したファイルがないというエラーのよう。
(gem deviseを使ってユーザー管理機能を実装)
エラー原因
自作アプリで、ページネーションを日本語表示にするために
config>application.rb に ”config.i18n.default_locale = :ja”と
日本語化する設定をしていたのですが、deviseのエラーメッセージに関しては日本語化していませんでした。
そのため、deviseの日本語のファイルがないよとエラーになってしまったみたいです。
class Application < Rails::Application
~省略~
#以下で日本語化の設定をしていた
config.i18n.default_locale = :ja
end
エラー解決方法
解決するには上記の日本語化を削除するか、deviseの日本語ファイルを作成してあげればOKのよう。
私はページネーションを日本語で表示させたいので、後者のやり方で解決することにしました。
deviseの日本語化
config/localesディレクトリ内の以下のファイルを2つ新規で作成します。
作成したファイル内に、それぞれリンク先に載っている記述内容をそのまま全てコピーして貼り付けるだけです。
これで日本語化することが出来たので、最初のエラーは出なくなりました。
ただ、日本語化したのでテストの際のエラー文言も日本語で書く必要があります。