如何使用%operator使用Ruby On Rails验证数字

时间:2012-07-06 16:51:34

标签: ruby-on-rails ruby

我想确保进入此对象的数字可被3整除。如何在模型上使用验证来防止无效输入?

谢谢!

2 个答案:

答案 0 :(得分:3)

试试这个:

# your_model.rb
validate :only_valid_numbers

private

    def only_valid_numbers
        if (self.number % 3) != 0
            self.errors[:base] << "Number must be divisible by 3!"
        end
    end

请记住0 % 3将为0,因此如果您不想允许,请将if语句更改为:

if self.number != 0 and ...etc...

答案 1 :(得分:0)

您可以为此编写自己的简单验证方法:

validate :divisible_by_three

def divisible_by_three
  unless attribute%3 == 0
    self.errors.add(:attribute, "is not divisible by 3")
  end
end

我认为没有任何内置的rails方法,所以这可能是最好的解决方案。

汤姆