如何在ruby-on-rails上为3位数写一个验证?

时间:2011-10-05 12:38:40

标签: ruby-on-rails regex validation

在我的控制器中我有这个:

validates_presence_of :order_of_importance, :on => :create, :with => /^\d{3}$/

但如果他们输入:

,这仍然会验证(我认为
4231

但我想确保他们输入3位数字。

有什么想法吗?

3 个答案:

答案 0 :(得分:9)

/^\d{3}$/应该这样做。它确保数字在字符串末尾的开头和结尾匹配。

此外,您最后不需要i,因为数字不是套装。

答案 1 :(得分:1)

你可以尝试

validates_length_of :order_of_importance, :maximum => 3

答案 2 :(得分:0)

也许是“更多Railsy”的方式:

validates_length_of       :order_of_importance, :on => :create, :is => 3
validates_numericality_of :order_of_importance, :on => :create