1

validates_presence_of不適用於我的日期字段。有沒有簡單的方法來檢查用戶是否選擇了一個日期(例如生日)?如何輕鬆驗證軌道3上紅寶石中的日期選擇框?

我在選擇框中使用了「日期:」,「月:」和「年:」的空白值。我想確保用戶不能通過驗證,除非他們選擇日期。

<%= 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

您可能想看看寶石。從自述例子:

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