我正在尝试修改en.yml
。
en:
errors:
messages:
blank: "This is a required field."
现在,每个具有validates presence: true
验证程序的空字段都会显示此新消息。
我想查找要修改的消息 types 列表。例如,如何自定义numericality
验证器消息?还是greater_than
验证工具?
有什么建议可以找到这个吗?
答案 0 :(得分:10)
以下是您可以在en.yml
文件中自定义的消息列表:
validates_acceptance_of
`:accepted` (“must be accepted”)
validates_associated
`:invalid` (“is invalid”)
validates_confirmation_of
`:confirmation` (“doesn’t match confirmation”)
validates_exclusion_of
`:exclusion` (“is reserved”)
validates_format_of
`:invalid` (“is invalid”)
validates_inclusion_of
`:inclusion`(“is not included in the list”)
validates_length_of
`:too_short` (“is too short (minimum is {{count}} characters)”)
`:too_long` (“is too long (maximum is {{count}} characters)”)
validates_length_of (with :is option)
`:wrong_length` (“is the wrong length (should be {{count}} characters)”)
validates_numericality_of
`:not_a_number` (“is not a number”)
validates_numericality_of (with :odd option)
`:odd` (“must be odd”)
validates_numericality_of (with :even option)
`:even` (“must be even”)
validates_numericality_of (with :greater_than option)
`:greater_than` (“must be greater than {{count}}”)
validates_numericality_of (with :greater_than_or_equal_to option)
`:greater_than_or_equal_to` (“must be greater than or equal to {{count}}”)
validates_numericality_of (with :equal_to option)
`:equal_to` (“must be equal to {{count}}”)
validates_numericality_of (with :less_than option)
`:less_than` (“must be less than {{count}}”)
validates_numericality_of (with :less_than_or_equal_to option)
`:less_than_or_equal_to` (“must be less than or equal to {{count}}”)
validates_presence_of
`:blank` (“can’t be blank”)
validates_uniqueness_of
`:taken` (“has already been taken”)
答案 1 :(得分:3)
根据Serg的回答,您可以在此处找到内置验证器的密钥列表:
http://guides.rubyonrails.org/i18n.html#error-message-interpolation
答案 2 :(得分:0)
它在一系列命名空间中找到错误消息。考虑具有name属性验证的User模型,如下所示:
class User < ActiveRecord::Base
validates :name, presence: true
end
在这种情况下,错误消息的键是:空白。 Active Record将在命名空间中查找此键:
activerecord.errors.models.[model_name].attributes.[attribute_name]
activerecord.errors.models.[model_name]
activerecord.errors.messages
errors.attributes.[attribute_name]
errors.messages
因此,在我们的示例中,它将按此顺序尝试以下键并返回第一个结果:
activerecord.errors.models.user.attributes.name.blank
activerecord.errors.models.user.blank
activerecord.errors.messages.blank
errors.attributes.name.blank
errors.messages.blank
希望它会有所帮助。感谢
答案 3 :(得分:0)
要添加到仅显示键的@MikeL答案,可以找到包含键和内插消息的完整列表here at rails very own github repository。