代码之家  ›  专栏  ›  技术社区  ›  sebastyuiop

在Rails中组合验证错误

  •  0
  • sebastyuiop  · 技术社区  · 17 年前

    例如,如果我有一个用户的电子邮件地址需要验证其存在和格式:

    validates_presence_of   :email_address, :message => "can't be blank"
    validates_format_of     :email_address, :with => /^([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})$/i
    

    如果没有输入任何内容,如何防止出现这两条错误消息?我知道对于这个场景,我不需要验证存在,这只是一个例子。谢谢

    2 回复  |  直到 17 年前
        1
  •  3
  •   Ben Crouse    17 年前

    在这个例子中,您可以添加 :allow_blank => true 到 validates_format_of .

    总的来说,我认为这取决于具体情况,通常可以通过巧妙地使用 ActiveRecord validation options .

        2
  •  1
  •   tadman    17 年前

    您还可以引入一个条件:如果,例如:

    validates_format_of :email_address, :with => EMAIL_REGEXP, :if => :email_address?
    

    电子邮件地址?只有当该字段具有非空值时,方法才应返回true。在这种情况下,这非常方便。