验证_format_of和验证之间的区别



我们可以通过:

来验证电子邮件
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的单个调用混合。这里更多信息。

最新更新