1

validates_presence_ofは、自分の日付フィールドでは機能しません。ユーザーが日付(誕生日など)を選択したことを確認する簡単な方法はありますか?Ruby on Rails 3の日付選択ボックスを簡単に検証する方法は?

私は、選択ボックスに "Day:"、 "Month:"、 "Year:"という空白の値を使用しています。私は、ユーザーが日付を選択しない限り、検証をパスできないようにしたいと思います。

<%= f.input :birthday, 
      :label  => 'Birthday:', 
      :as   => :date, 
      :start_year => Date.current.year, 
      :end_year => Date.current.year - 106, 
      :order  => [:day, :month, :year], 
      :prompt  => { 
       :day => 'Day:', 
       :month => 'Month:', 
       :year => 'Year:' 
      } %> 
+0

[日付の検証に関するこの回答](http://stackoverflow.com/questions/597328/how-do-i-validate-a-date-in-rails)欲しい –

答えて

1

の宝石を見てください。 Readmeの例:

validates_datetime :occurred_at 

validates_date :date_of_birth, :before => lambda { 18.years.ago }, 
          :before_message => "must be at least 18 years old" 

validates_datetime :finish_time, :after => :start_time # Method symbol 

validates_date :booked_at, :on => :create, :on_or_after => :today # See Restriction Shorthand. 
validates_time :booked_at, :between => ['9.00am', '5:00pm'] 

validates_time :breakfast_time, :on_or_after => '6:00am', 
           :on_or_after_message => 'must be after opening time', 
           :before => :lunchtime, 
           :before_message => 'must be before lunch time' 
+0

validates_timeliness宝石を使って試しても効果がありません。私は空白の値を設定しています。何も選択しないと、違いはありません。エラーメッセージは表示されません。私の他のすべてのエラーチェックは正常ですが、この日付フィールドになるとエラーが発生します。 – LondonGuy

+0

設定にallow_blank => falseを含めましたか? – KenB

+0

うんうん。効果がなかった。 – LondonGuy

関連する問題