作者热门文章
- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我正在 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/
我是一名优秀的程序员,十分优秀!