2011-01-14 10 views
2

Gibt es einen Datumsvalidierungshelfer für Mongo- oder aktives Modell? Ich möchte Daten auf gültigen ISO_8601-Standard (http://en.wikipedia.org/wiki/ISO_8601#Dates) überprüfen, die keine große Sache mit Mongolen validates_format_of ist. Das Datum sollte aber in Zukunft oder abhängig vom Feld> = ein anderes Datum (Start- und Enddatum) sein.Datum Validierung Helfer für Mongoid/aktives Modell?

Mein Ansatz wäre, das Format mit validates_format_of zu überprüfen und meine eigenen Datumsvalidatoren für meine weiteren Anforderungen zu schreiben.

Wer hat das schon mal gemacht?

Danke, Julian

Antwort

0

Ja, tut vollständige Validierung von Daten, Zeiten und Datetimes für Rails 3.x und ActiveModel.

Es unterstützt ausdrücklich Mongoid:

ValidatesTimeliness.setup do |config| 

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

end 
+0

Danke! Ich benutze validates_timeliness jetzt und es hat mein Problem gelöst. –

3

Ihr Ansatz scheint wie ein guter. Der beste Weg, dies zu tun, besteht darin, die Validierung auf ihre eigene Funktion zu reduzieren.

Sie können dies tun, wie so:

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 
+0

Vielen Dank für Ihre Antwort. Ich verwende validates_timeliness jetzt für die Validierung von Datum und Uhrzeit. –