mongoid / active模型的日期验证助手?

时间:2011-01-14 11:52:31

标签: ruby-on-rails validation date mongoid

是否有mongoid或活动模型的日期验证助手? 我想检查有效ISO_8601标准(http://en.wikipedia.org/wiki/ISO_8601#Dates)的日期,这与mongoids validates_format_of没什么关系。但日期应该是将来或取决于字段> =另一个日期(开始和结束日期)。

我的方法是使用validates_format_of检查格式,并根据我的进一步要求编写自己的日期验证器。

之前有人这么做过吗?

谢谢, 儒略

2 个答案:

答案 0 :(得分:3)

你的方法似乎很好。最好的方法是将验证分解为自己的功能。

你可以这样做:

class Foo
   include Mongoid::Document
   field :date_time, :type => DateTime
   validate :date_is_ok?

   def date_is_ok
     unless self.date_time.to_i > Time.now.to_i
        errors.add :date_time, "must be in the future"
        return false
     end
     true
   end
end

答案 1 :(得分:0)

是的,validates_timeliness确实完成了Rails 3.x和ActiveModel的日期,时间和日期时间的验证。

它明确支持Mongoid:

ValidatesTimeliness.setup do |config|

  # Extend ORM/ODMs for full support (:active_record, :mongoid).
  config.extend_orms = [ :mongoid ]

end