【问题标题】:Rails validations if conditionRails 验证条件
【发布时间】:2015-05-14 12:23:38
【问题描述】:

我需要您的帮助来验证一个简单的 Rails 模型。

首先我想检查用户是否填写了所有输入字段:

class Test < ActiveRecord::Base

   validates :firstname, :lastname, :firstvalue, :secondvalue, presence: true

   [...]

我还想检查:secondvalue 参数是否大于:firstvalue

添加

validate :biggerThan

def biggerThan

    if self.secondvalue < self.firstvalue

        errors.add(:secondvalue, "must be bigger than First")

    end
end

这行得通,但前提是所有其他字段都已填写!创建一个将所有字段留空的新条目我得到一个undefined method &lt;' for nil:NilClass

你能帮帮我吗?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 conditional


    【解决方案1】:

    你可以这样做

    validate :biggerThan, if: Proc.new{ |test| test.firstvalue.present? and test.secondvalue.present? }
    

    如果你也添加numericality 验证会很好

    validates :firstvalue, numericality: true
    validates :secondvalue, numericality: true
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-09-10
      • 2011-10-10
      • 1970-01-01
      • 1970-01-01
      • 2014-08-29
      • 2012-02-25
      相关资源
      最近更新 更多