Ruby on rails 如何获得无效电子邮件或电子邮件字段留空的验证错误?
我试图验证表单中的字段,在表单中,我希望输入的两个不同问题有两条不同的消息 我有以下代码:Ruby on rails 如何获得无效电子邮件或电子邮件字段留空的验证错误?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我试图验证表单中的字段,在表单中,我希望输入的两个不同问题有两条不同的消息 我有以下代码: validates_format_of :email, :with => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i, :allow_blank => false 如果电子邮件字段留空,则网站中将显示错误消息“电子邮件无效” 如何使验证返回一个消息,如果该字段不被用户
validates_format_of :email,
:with => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i,
:allow_blank => false
如果电子邮件字段留空,则网站中将显示错误消息“电子邮件无效”
如何使验证返回一个消息,如果该字段不被用户所忽略,而不是仅仅说它太短,则不可以是空的?
您为空白实例创建单独的验证:validates_presence_of :email
validates_format_of :email,
:with => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i,
:allow_blank => true
我喜欢用两种不同的验证来处理这个问题(并确保它们不会同时启动)。比如说:
validates_format_of :email,
:with => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i,
:allow_blank => true
validates_presence_of :email
验证
的存在,确保电子邮件不是空的。将的\u format\u更改为使用:allow\u blank=>true将确保在电子邮件为空时格式验证不会运行
在Rails 3.0+中,您还可以使用以下方法将两个验证组合为一个验证:
您需要单独添加另一个状态验证检查,如:
validates :email, presence: true, format: { with: YOUR_REGEX }
validates :email, presence: true, format: { with: YOUR_REGEX }