0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Rails】アソシエーションされたモデルのエラーメッセージ日本語化

Posted at

railsでエラーメッセージを日本語させている時にちょっと沼ったので忘れないように書いておきます。

アソシエーションされたモデルに日本語を渡せない

こちらの投稿を参考にさせてもらい、エラーメッセージの日本語化を行いました。
Railsのバリデーションエラーのメッセージの日本語化

.ymlファイルを作成し、カラム名に日本語を渡していく中で思った通りの動きをしない部分が出ました。
スクリーンショット 2020-08-25 9.39.36.png

記述したコードはこんな感じです。

スクリーンショット 2020-08-25 9.40.14.png

何をしようとしているかというと、product(商品)を登録しようとした時に、商品名・ジャンル・価格にバリデーションをかけてもしその部分が未入力であればエラーメッセージを表示させよう、ということです。
一つのジャンルに対して複数の商品があるので、ジャンルはモデルを作ってあります。

prouctsテーブルが持つ name introduction price genre_id を日本語化させようとした所、ジャンルだけ英語のままになりました。

binding.pryで中身をみた所、英語になっているGenreは :genre が渡されている様子。
でもproductsの中にはgenreはないよーな?

スクリーンショット 2020-08-25 9.34.20.png

シンプルに.ymlファイルの中にgenreを記述しました。

スクリーンショット 2020-08-25 9.38.42.png

これで行けました。

スクリーンショット 2020-08-25 9.40.54.png

しっかり確認したわけではないですが、アソシエーション先のモデル名を書くことで反映されるみたい。
必要であればその先のカラム名も入力してあげれば表示をさらに増やせるのかな。

また何かあったら投稿していきます。

0
1
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
0
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?