2012-02-05 84 views

回答

1

您必须为此编写自定义验证方法。

这是我会怎么做:

validate :custom_inclusion 

private 

def custom_inclusion 
    range = (1..100) 
    begin 
     Kernel.float(field) 
    rescue ArgumentError 
     errors.add(:field,"is not a number") and return 
    end 

    if !(range.min < field.to_i && range.max > field.to_i) 
     errors.add(:field,"is not between #{range.min} and #{range.max}") 
    end 
end 

其中field属性是要验证的模型。

+0

非常感谢。我的另一种方法是在'validate_inclusion_of'验证中追加':if =>:non_zero'选项,因为当非数字值被分配给它时,这些字段将该值转换为0(零)。 – 2012-02-07 07:28:35

相关问题