初めに
自分用の備忘録として書きます。
プログラミング初学者(2ヶ月)ですので間違えていることもあると思います・・・
なので、なにかおかしいことを言っていたらコメントなどでご指摘くださると助かります。
エラー画面
チームでECサイト作成しているときにエラーのフラッシュメッセージを日本語化しようとしていたときに出たエラーです。
これは新規会員登録をわざと空にしてエラーのフラッシュメッセージを出そうとしたときに起こりました。
色々調べた(あまり記事がなかった為、殆どChatGPT様に聞いた)結果、原因としては
「このエラーメッセージは、複数形のデータに対して :count => 1 のような単数形のカウントが指定された場合に発生します。具体的には、_errors.html.erb テンプレートの7行目でエラーメッセージを表示する際に、translation data 内のキーと値が複数形形式になっていることが原因です。」
とのことで・・・
うーん、分からん!
とりあえずhtmlではなくymlファイルが原因っぽいのは分かりました。
activerecord:
models:
customer:
email: メールアドレス
password: パスワード
last_name: 姓
first_name: 名
kana_last_name: セイ
kana_first_name: メイ
post_code: 郵便番号
address: 住所
telephone_number: 電話番号
また「translation data」は翻訳データだそうです。
結果
結論としては「models:」から「attributes:」に修正したら解決しました
activerecord:
attributes:
customer:
email: メールアドレス
password: パスワード
last_name: 姓
first_name: 名
kana_last_name: セイ
kana_first_name: メイ
post_code: 郵便番号
address: 住所
telephone_number: 電話番号
参考にしたサイト
https://makandracards.com/makandra/47056-dealing-with-i18n-invalidpluralizationdata-errors
私の英語力が雑魚なのでGoogle先生に翻訳してもらいましたが、結局のところ理由はわかってもどういう処理でエラーになるのかはよくわからなかったです・・・
どうやらI18nはオプションの複数形化をする?らしく、単数形も複数形にしようとしてエラーが出る?んですかね・・・
完全に理解するのは未来の自分に任せます。
閲覧していただきありがとうございました!