如何验证以秒为单位的时间轨道4

时间:2015-07-31 10:12:32

标签: 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 = 628232400
Time.at(start_date) #=> 1989-11-28 00:00:00 -0500

2 个答案:

答案 0 :(得分:1)

您可以使用validates_format_of。但是你需要一个正则表达式来匹配。阅读更多here

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

答案 1 :(得分:1)

您可以尝试使用数字选项,因为任何数字都适用于Time.at(start_date)。您可能希望仅将其限制为正数。下面有几个选项。

connect(reply, SIGNAL(error(QNetworkReply::NetworkError)), this, SLOT(networkErrorSlot(QNetworkReply::NetworkError)));

或者如果您想限制值:

validates :start_date, presence: true, numericality: true