假设我们有一个带有name属性的User模型。假设我们在模型中使用以下名称...
VALID_NAME_REGEX = /^[A-Za-z0-9]+(?:[ _-][A-Za-z0-9]+)*$/
validates :name, presence: true, format: { with: VALID_NAME_REGEX },
uniqueness: { case_sensitive: false }, length: { minimum: 2, maximum: 20 }
如果用户输入的内容不是字母数字,空格,下划线或连字符,则名称将无法进行正则表达式验证,用户将无法保存。
将向用户返回“姓名无效”消息。
这不是很有帮助。如何将自定义消息绑定到正则表达式验证失败,以便如果名称未通过正则表达式,我们将返回一个自定义错误,如“名称只能包含字母,数字,空格,下划线和连字符”?
答案 0 :(得分:2)
只需添加"消息"验证哈希的关键。 Check out the docs.
VALID_NAME_REGEX = /^[A-Za-z0-9]+(?:[ _-][A-Za-z0-9]+)*$/
validates :name, presence: true, format: {
with: VALID_NAME_REGEX,
message: "Name can only include letters, numbers, spaces, underscores, and hyphens"
},
uniqueness: { case_sensitive: false },
length: { minimum: 2, maximum: 20 }