gpt4 book ai didi

ruby-on-rails - rails : Validating a Date Greater than Another

转载 作者:数据小太阳 更新时间:2023-10-29 07:06:16 25 4
gpt4 key购买 nike

我正在 ActiveRecord 中编写一个自定义验证器,以便截止日期有意义:

  validate :deadline_is_possible?

def deadline_is_possible?
if deadline > begins_at
errors.add(:deadline, 'must be possible')
end
end

然而,这会生成一个“NoMethodError:未定义的方法 `>' for nil:NilClass”。我尝试将日期转换为字符串,例如:

  def deadline_is_possible?
if deadline.to_s > begins_at.to_s
errors.add(:deadline, 'must be possible')
end
end

虽然它不会产生错误,但也不起作用。

我还声明了其他验证器(例如

  def begins_at_is_date?
if !begins_at.is_a?(Date)
errors.add(:begins_at, 'must be a date')
end
end

工作正常。

最佳答案

如果其中一个日期为零,您可能需要处理。您可以将它们设置为在截止日期数据库中具有默认值,或者执行以下操作:

  validate :deadline_is_possible?

def deadline_is_possible?
return if [deadline.blank?, begins_at.blank?].any?
if deadline > begins_at
errors.add(:deadline, 'must be possible')
end
end

关于ruby-on-rails - rails : Validating a Date Greater than Another,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10655619/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com