2011-01-14 1 views
2

モンゴイドまたはアクティブモデルの日付検証ヘルパーはありますか? 有効なISO_8601規格(http://en.wikipedia.org/wiki/ISO_8601#Dates)で日付を確認したいのですが、モンゴイドvalidates_format_ofと大きな違いはありません。しかし、日付は将来的に、またはフィールド> =別の日付(開始日と終了日)に応じて設定する必要があります。モンゴイド/アクティブモデルの日付検証ヘルパーですか?

私のアプローチは、フォーマットをvalidates_format_ofでチェックし、それ以降の要件のために自分の日付バリデーターを書くことです。

誰でもこれまでに行ったことはありますか?

おかげで、 ジュリアン

答えて

0

はい、はRailsの3.xおよびActiveModelの日付、時刻と日付時刻の完全な検証を行います。あなたの答えのための

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

ありがとう:

それは明示的にMongoidサポートしています。私は日付/時刻検証のためにvalidates_timelinessを使用しています。 –