2011-01-14 5 views
2

Есть ли помощник по проверке даты для монгоидной или активной модели? Я хочу проверить даты на действующем стандарте ISO_8601 (http://en.wikipedia.org/wiki/ISO_8601#Dates), который не является большой сделкой с монгодами validates_format_of. Но дата должна быть в будущем или в зависимости от поля> = другая дата (начало и конец).Помощник проверки даты для монгоидной/активной модели?

Мой подход состоял в том, чтобы проверить формат с помощью validates_format_of и написать мои собственные валидаторы для моих дальнейших требований.

Кто-нибудь сделал это раньше?

Спасибо, Джулиан

ответ

0

Да, делает полную проверку даты, времени и DateTimes для Rails 3.x и ActiveModel.

Он явно поддерживает Mongoid:

ValidatesTimeliness.setup do |config| 

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

end 
+0

Спасибо! Теперь я использую validates_timeliness, и это решило мою проблему. –

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

Спасибо за ваш ответ. Я использую validates_timeliness для проверки даты и времени. –

Смежные вопросы