1

我目前正在使用以下代码验证我的模型:

validates :price, :presence => true, :numericality => {:greater_than => 0}

这很好用,除了当我没有在此字段中输入任何值时,我得到 2 个错误 - “价格不能为空白”和“价格不是数字”。

我可以理解为什么会发生这种情况 - 显然它没有通过两项测试。但是我想知道是否有一种方法可以在一次测试后停止验证,因为如果根本没有数字,那么如果数字大于 0,就没有必要进行测试?

谢谢!

编辑:为了清楚起见,我不想让该字段为空白,我只是不想在它为空白时运行数值测试,以避免出现 2 个错误消息,因为实际上是 1 个错误。

4

1 回答 1

1

不确定它是否会起作用,但您可以尝试:

validates :price, :presence => true, :numericality => {:greater_than => 0, :allow_blank => true }
于 2012-10-11T20:28:58.633 回答