我正在尝试以一种形式验证字段,在该形式中,我想针对输入的两个不同问题使用两个不同的消息。
我有以下代码:
validates_format_of :email,
:with => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i,
:allow_blank => false
如果电子邮件字段留为空白,则网站上将显示错误消息“电子邮件无效”。
我如何获得验证以返回一条消息,说明如果用户遗漏该字段,则不能空白,而不仅仅是说字段太短?
我喜欢使用2种不同的验证方式来处理此问题(并确保它们不会同时触发)。所以像这样:
validates_format_of :email,
:with => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i,
:allow_blank => true
validates_presence_of :email
validates_presence_of
确保电子邮件不为空的句柄。更改validates_format_of
使用:allow_blank => true
将确保如果电子邮件为空白,则格式验证不会运行。
在Rails 3.0+中,您还可以使用以下方法将两个验证合并为一个验证validates
:
validates :email,
presence: true,
format: { with: /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i,
allow_blank: true }
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句