1. ホーム
  2. ruby-on-rails

[解決済み】Railsでフルカスタマイズされた検証エラーメッセージ

2022-04-02 10:10:36

質問

Railsを使って、保存時に"The song field can't be empty"のようなエラーメッセージを表示させようとしています。以下のようにしています。

validates_presence_of :song_rep_xyz, :message => "can't be empty"

...は "Song Rep XYW can't be empty" としか表示されず、フィールドのタイトルがユーザーフレンドリーでないため、よくありません。フィールドのタイトルを変更するにはどうすればよいのでしょうか?データベースでフィールドの実際の名前を変更することはできますが、私は複数の"song"フィールドを持っており、特定のフィールド名を持つ必要があります。

railsのバリデーション処理をハックしたくないので、それを解決する方法があるはずだと感じています。

どのように解決するのですか?

現在、ヒューマナイズドネームとカスタムエラーメッセージを設定する方法として受け入れられているのは ロケールを使用する .

# config/locales/en.yml
en:
  activerecord:
    attributes:
      user:
        email: "E-mail address"
    errors:
      models:
        user:
          attributes:
            email:
              blank: "is required"

今度はヒューマナイズされた名前 の有無の検証メッセージが変更されました。

検証メッセージは、特定のモデル+属性、モデル、属性、またはグローバルに設定することができます。