エラーメッセージを日本語にしよう!

エラーメッセージを日本語表記になおします😁

 

⭐️手順

①config/application.rbを編集

config.i18n.default_locale = :ja

 

②Gemfileを編集

gem 'rails-i18'

 

③config/localesディレクトリにdevise.ja.ymlファイル作成

 

④devise.ja.ymlサイトの内容を丸ごとコピーして、devise.ja.ymlファイル貼り付け

 

⑤config/localesディレクトリに、ja.ymlファイル作成

 

⑥ja.ymlファイルに以下↓記述

ja:
  activerecord:
    attributes:
      user:
        nickname: ニックネーム
      tweet:
        text: テキスト
        image: 画像

 

🔥ここで注意!

上記はactiverecordを継承しているカラムにのみ対応可能

class User < ApplicationRecord

今回はFormオブジェクトのカラムに反映させたい!

class PurchaseAddress
include ActiveModel::Model

ActiveModelを使います!

ja:
activerecord: 👈ApplicationRecord
attributes:
user:
nickname: ニックネーム
birthday: 誕生日
last_name: 名字
fast_name: 名前
last_name_kana: 名字(カナ)
fast_name_kana: 名前(カナ)
 
 
activemodel: 👈formオブジェクト ActiveModel 
attributes:
purchase_address:
postalcoad: 郵便番号
prefecture_id: 発送元の地域
city: 市区町村
addresses: 番地
apartment: 建物名
phon_number: 電話番号
token: カード情報

 

これで無事にエラー画面の日本語表記になりました😁

 

🔥ここでまたも問題🔥

郵便番号と発送もとの地域のエラーメッセージがおかしなことになっている!

  • 郵便番号を入力してください
  • 郵便番号is invalid. Include hyphen(-)
  • 発送元の地域can't be blank
  • 市区町村を入力してください
  • 番地を入力してください
  • 電話番号を入力してください
  • 電話番号は不正な値です
  • カード情報を入力してください

 

 

⭐️解決手順

①バリデーションを見にいく

with_options presence: true do
validates :postalcoad,
format: {with: /\A[0-9]{3}-[0-9]{4}\z/,
message: "is invalid. Include hyphen(-)"}
validates :prefecture_id,
numericality: { other_than: 1, message: "can't be blank"}
validates :city
validates :addresses
validates :phon_number, format: {with: /\A\d{10,11}\z/}
validates :user_id
validates :item_id
validates :token
end
 
format: {with: /\A[0-9]{3}-[0-9]{4}\z/,
message: "is invalid. Include hyphen(-)"}
validates :prefecture_id,
numericality: { other_than: 1, message: "can't be blank"}
messageオプションが英語になっている!
 
 
②messageオプションを日本語に直す
validates :postalcoad,
format: {with: /\A[0-9]{3}-[0-9]{4}\z/,
message: "はハイフン(-)を入れて入力してください"}
validates :prefecture_id,
numericality: { other_than: 1, message: "を入力してください"}
 
無事に解決しました!