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文件。假设“post”是您的模型名称,这提供了特定于年龄的消息、特定于帖子的消息和通用(所有模型)消息的示例。

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 回答