5

ActiveRecord モデルのフィールドの数値を検証するときに、サブ オプションのエラー メッセージをカスタマイズするにはどうすればよいですか?

例:

validates :month, :numericality => {
  :greater_than_or_equal_to => 1,
  :less_than_or_equal_to    => 12
}

この場合、「月」属性が 12 を超える場合、デフォルトの「12 以下でなければならない」ではなく、カスタム エラー メッセージを提供したいと考えています。これを達成する方法は?

4

2 に答える 2

11

カスタムバリデータを使用したくない場合は、en.yml代わりにファイルを使用できます。「投稿」がモデル名であると仮定すると、これは年齢固有のメッセージ、投稿固有のメッセージ、および一般的な (すべてのモデル) メッセージの例を提供します。

en:
  activerecord:
    errors:
      models:
        post:
          attributes:
            age:
              less_than_or_equal_to: "Age-specific error" # Applies only to post.age
          less_than_or_equal_to: "Post-specific error" # Applies to all other fields for a post
      messages:
        less_than_or_equal_to: "Generic error" # Applies to all other models
于 2012-06-12T15:26:19.803 に答える
0

モデルに応じてエラー メッセージをカスタマイズする場合は、次の構文を使用できます。

validates_numericality_of :month, 
    greater_than_or_equal_to: 1,
    less_than_or_equal_to: 12,
    message: "My custom error message"

この構文を使用して、特定の条件に基づいてエラー メッセージをカスタマイズすることもできます。

validates_numericality_of :month, 
    greater_than_or_equal_to: 1,
    message: "Too small"

validates_numericality_of :month, 
    less_than_or_equal_to: 12,
    message: "Too big
于 2015-03-02T15:57:03.547 に答える