Activerecord字段验证一个接一个

时间:2012-02-05 14:41:55

标签: ruby-on-rails validation activerecord callback

我想知道在通过其他验证后如何验证字段,例如,我有:

validates_numericality_of :field
validates_inclusion_of :field (after validating field's numericality)

提前致谢。

1 个答案:

答案 0 :(得分: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是您要验证的模型属性。