Rails验证程序:仅显示基于层次结构

时间:2016-08-24 14:52:41

标签: ruby-on-rails

对于电子邮件属性,我有两个验证器助手,如下所示:

validates :email,
  presence: true,
  format: { with: /some_regex/, message: "Bad email error message"}

有没有办法设置它(不使用自定义验证器方法)所以如果presence: true失败,它将不会显示format消息?

我不想在字段为空白时显示格式消息...它没有提供良好的用户体验"当然它是一种糟糕的格式......那里什么都没有!"

1 个答案:

答案 0 :(得分:1)

使用unless选项并移除presence选项。

validates :email,
  format: { with: /some_regex/, message: "Bad email error message"},
  unless: "email.nil?"

这样,除非emailnil

,否则将验证电子邮件

或者,您可以使用allow_blank,这将确保仅在字段不为空时才会进行验证。

validates :email,
  format: { with: /some_regex/, message: "Bad email error message"},
  allow_blank: true

两者都做同样的事情。但是,第一种选择更灵活。