0
后,我想知道你是怎么通过其他验证,例如验证后场,我有:提前ActiveRecord的字段验证一个其他
validates_numericality_of :field
validates_inclusion_of :field (after validating field's numericality)
感谢。
后,我想知道你是怎么通过其他验证,例如验证后场,我有:提前ActiveRecord的字段验证一个其他
validates_numericality_of :field
validates_inclusion_of :field (after validating field's numericality)
感谢。
您必须为此编写自定义验证方法。
这是我会怎么做:
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
属性是要验证的模型。
非常感谢。我的另一种方法是在'validate_inclusion_of'验证中追加':if =>:non_zero'选项,因为当非数字值被分配给它时,这些字段将该值转换为0(零)。 – 2012-02-07 07:28:35