您好我有一个名为users的模型,他们有一个手机属性,必须输入一个以“+”开头的12位数字符串。我想验证他们从表单输入的属性实际上是否采用了正确的格式。示例“+11234567890”应保存到模型中,但“1232h”不会保存。
这就是我在我的模型中所拥有的,但它不起作用:
validates :cell, :format => { :with => /^[-+]?[0-9]+$/,
:message => "Only numbers allowed" }, :length => { :is => 10 }
答案 0 :(得分:3)
试试这个:
validates :cell, :format => { :with => /\A(\+1)?[0-9]{10}\z/, :message => "Not a valid 10-digit telephone number" }
我认为问题在于您尝试在单个validates
行上进行两种不同类型的验证。上面将长度约束与数字约束相结合,并允许变量+/-而不会弄乱长度约束。