Rails で完全にカスタマイズされた検証エラーメッセージ 質問する

Rails で完全にカスタマイズされた検証エラーメッセージ 質問する

Rails を使用して、保存時に「曲フィールドを空にすることはできません」のようなエラー メッセージを取得しようとしています。次の操作を実行します。

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

...「Song Rep XYW は空にできません」とのみ表示されますが、フィールドのタイトルがユーザーフレンドリーではないため、これは適切ではありません。フィールド自体のタイトルを変更するにはどうすればよいですか? データベース内のフィールドの実際の名前を変更することはできますが、複数の「song」フィールドがあり、特定のフィールド名が必要です。

Rails の検証プロセスをハックしたくないので、それを修正する方法があるはずだと感じています。

ベストアンサー1

現在、人間化された名前とカスタムエラーメッセージを設定する一般的な方法は、ロケールを使用する

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

これで、「email」属性の人間化された名前存在検証メッセージが変更されました。

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

おすすめ記事