railsでエラーメッセージを日本語させている時にちょっと沼ったので忘れないように書いておきます。
アソシエーションされたモデルに日本語を渡せない
こちらの投稿を参考にさせてもらい、エラーメッセージの日本語化を行いました。
Railsのバリデーションエラーのメッセージの日本語化
.ymlファイルを作成し、カラム名に日本語を渡していく中で思った通りの動きをしない部分が出ました。
記述したコードはこんな感じです。
何をしようとしているかというと、product(商品)を登録しようとした時に、商品名・ジャンル・価格にバリデーションをかけてもしその部分が未入力であればエラーメッセージを表示させよう、ということです。
一つのジャンルに対して複数の商品があるので、ジャンルはモデルを作ってあります。
prouctsテーブルが持つ name introduction price genre_id を日本語化させようとした所、ジャンルだけ英語のままになりました。
binding.pryで中身をみた所、英語になっているGenreは :genre が渡されている様子。
でもproductsの中にはgenreはないよーな?
シンプルに.ymlファイルの中にgenreを記述しました。
これで行けました。
しっかり確認したわけではないですが、アソシエーション先のモデル名を書くことで反映されるみたい。
必要であればその先のカラム名も入力してあげれば表示をさらに増やせるのかな。
また何かあったら投稿していきます。