使用validate_timeliness是否需要内置方法?我希望我的生日场是必需的,当我分开存在时(像这样)
模型
# validates :birthday,
# :presence => true,
# :on => :create
它将显示两个错误(第一个错误将是生日可以是空白而另一个是生日不是有效日期)。
模型
validates_date :birthday, :if :birthday,
:before => lambda { 18.years.ago },
:before_message => "must be at least 18 years old"
:end
问题:如何检查我的生日是不是零?
注意:我也试过这个
模型
validates_date :birthday, :if birthday.present?, # here's the line giving an error
:before => lambda { 18.years.ago },
:before_message => "must be at least 18 years old",
:end
但它给了我一个期待keyword_end
的错误答案 0 :(得分:1)
只需进行不同的验证:
validates :birthday, presence: true
validates_date :birthday,
allow_blank: true,
before: lambda { 18.years.ago },
before_message: 'must be at least 18 years old'
第二次验证允许空白值。如果根本没有birthday
,这可以防止出现两个错误。第一次验证仍将确保存在birthday
。