我们可以通过:
来验证电子邮件validates :email, format: { with: VALID_EMAIL_REGEX }
或
validates_format_of :email, :with => /A([^@s]+)@((?:[-a-z0-9]+.)+[a-z]{2,})Z/i, :on => :create
两种方法之间有什么区别。一种方法比另一种方法更好吗?
这两种形式之间没有区别。第一个只是一个方便的快捷方式,能够在单个属性上指定多个验证。例如,假设您想确保电子邮件有效但也是独一无二的。在您的示例中使用第二种表格,这将写成
validates_uniqueness_of :email
validates_format_of :email, with: VALID_EMAIL_REGEX
或,可以使用validates
validates :email, uniqueness: true, format: { with: VALID_EMAIL_REGEX }
使用validates
也很高兴,您可以将默认验证与您自己的自定义验证与validates
的单个调用混合。这里更多信息。