【问题标题】:How do you validate numbers with Ruby On Rails using % operator如何使用 % 运算符使用 Ruby On Rails 验证数字
【发布时间】:2012-07-07 01:01:29
【问题描述】:

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

谢谢!

【问题讨论】:

    标签: ruby-on-rails ruby


    【解决方案1】:

    试试这个:

    # 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...
    

    【讨论】:

      【解决方案2】:

      您可以为此编写自己的简单验证方法,如下所示:

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

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

      汤姆

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2012-08-04
        • 2023-04-10
        • 2016-08-04
        • 1970-01-01
        • 2011-06-27
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多