在 ActiveRecord 模型中验证字段的数值时,如何自定义子选项的错误消息?
例子:
validates :month, :numericality => {
:greater_than_or_equal_to => 1,
:less_than_or_equal_to => 12
}
在这种情况下,如果“月”属性大于 12,我想提供自定义错误消息,而不是默认的“必须小于或等于 12”。如何做到这一点?
在 ActiveRecord 模型中验证字段的数值时,如何自定义子选项的错误消息?
例子:
validates :month, :numericality => {
:greater_than_or_equal_to => 1,
:less_than_or_equal_to => 12
}
在这种情况下,如果“月”属性大于 12,我想提供自定义错误消息,而不是默认的“必须小于或等于 12”。如何做到这一点?
如果您不想使用自定义验证器,则可以改用该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
如果要根据模型自定义错误消息,可以使用以下语法:
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