0

嗨,我有一个名为 users 的模型,他们有一个手机属性,必须输入一个以“+”开头的 12 位字符串。我想验证他们从表单输入的属性实际上是正确的格式。示例“+11234567890”应该保存到模型,但“1232h”不会。

这是我的模型中的内容,但它不起作用:

  validates :cell, :format => { :with => /^[-+]?[0-9]+$/,
    :message => "Only numbers allowed" }, :length => { :is => 10 }
4

1 回答 1

3

尝试这个:

validates :cell, :format => { :with => /\A(\+1)?[0-9]{10}\z/, :message => "Not a valid 10-digit telephone number" }

我认为问题在于您试图在validates一行上进行两种不同类型的验证。上面结合了长度约束和数量约束,并允许变量 +/- 而不会弄乱长度约束。

于 2013-05-30T21:03:54.620 回答