Ruby 如何验证以秒为单位的时间rails 4

Ruby 如何验证以秒为单位的时间rails 4,ruby,validation,ruby-on-rails-4,Ruby,Validation,Ruby On Rails 4,我知道我可以使用类似这样的自定义验证: validates :start_date, precense: true validate :start_date private def start_date Time.at(@start_date) rescue StandartError => e errors.add(:start_date, "start_date is incorrect!") end 但是看起来有点脏,有没有更好的办法 更新 start_date = 6

我知道我可以使用类似这样的自定义验证:

validates :start_date, precense: true
validate :start_date

private
def start_date
  Time.at(@start_date)
rescue StandartError => e
  errors.add(:start_date, "start_date is incorrect!")
end 
但是看起来有点脏,有没有更好的办法

更新

start_date = 628232400
Time.at(start_date) #=> 1989-11-28 00:00:00 -0500

您可以使用
验证
的格式。但是您需要一个正则表达式来匹配。阅读更多


您还可以在现有验证中添加
格式:{with:regex}

您可以尝试数字选项,因为任何数字都可以与时间一起使用。在(开始日期)。您可能希望将其限制为仅为正数。下面有几个选项

validates :start_date, presence: true, numericality: true
或者,如果要限制值:

validates :start_date, presence: true, numericality: {greater_than: 0, message: " is an invalid value."}

什么类型的开始日期?@MaximPontyushenko编辑了我的question@AydarOmurbekov数据库中列的类型。是否确实需要此验证。如果您的开始日期不存在?它将通过状态验证来捕获。如果有。它的类型是整数,它总是在这个
时间返回一些东西。在(@start_date)
@3aёёы我没有将它保存在数据库中,它只是验证