在模型中验证DateTime格式

Rap*_*ure 2 ruby-on-rails ruby-on-rails-3

我正在为具有键入日期时间的起始列的模型添加验证

目前我只使用date_select表单助手,但是如果我决定将来要使用时间值,则将列类型保留为datetime.

我目前正在使用:

validates :start, :presence => true
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有:format =>这将确保我收到日期.我知道有人不太可能改变周围的选择框,但我认为你不能太小心,对吧?

Bvu*_*Ic7 10

这取决于您要接受的日期格式.

FE

validates :start, :presence => true, :format => /(0[1-9]|[12][0-9]|3[01])[- /.](0[1-9]|1[012])[- /.](19|20)\d\d/
Run Code Online (Sandbox Code Playgroud)

对于dd-mm-yyyy作为dateformat.

Google for date regexp!

由于我的回答是downvoted,我再试一次:

   validate do
      self.errors[:start] << "must be a valid date" unless (DateTime.parse(self.start) rescue false)
   end
Run Code Online (Sandbox Code Playgroud)