rails validation,如何检查其他字段范围内的值的字段

时间:2012-05-11 09:36:53

标签: ruby-on-rails ruby ruby-on-rails-3 validation range

我有两个领域:

验证:bhp

验证:ps

现在,如果:bhp的值为80,

那么:ps的值应该在+ -10范围内:bhp例如。 [70..90]在这里。

反之亦然

1 个答案:

答案 0 :(得分:0)

您可以使用自定义验证程序。

这样的事情:

validate :keep_ps_in_range_of_bhp

def keep_ps_in_range_of_bhp
  range = 10
  unless (bhp-ps).abs <= range
    errors.add(:ps, "should be in range +-#{range} of bhp")
  end
end

类似的方法你可以为相反的情况添加验证器,但只有当你不允许改变这两个值时它才有意义(但即使在这种情况下我也不确定这是非常好的方法)。 / p>