エラーメッセージを日本語にしよう!
エラーメッセージを日本語表記になおします😁
⭐️手順
①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: カード情報
これで無事にエラー画面の日本語表記になりました😁
🔥ここでまたも問題🔥
郵便番号と発送もとの地域のエラーメッセージがおかしなことになっている!
⭐️解決手順
①バリデーションを見にいく
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: "を入力してください"}
無事に解決しました!