2015-09-17 62 views
3

我在Rails 4中使用date_select,我希望能夠將今天的日期作爲默認日期,但也允許用戶將日期字段留空。如何設置默認日期和include_blank在date_select在Rails

<%= f.date_select(:birthdate, {include_blank: true, default: Date.today.to_date, start_year: Date.today.year - 100, end_year: Date.today.year - 18}) %> 

什麼是允許空白的最佳方式,以及當頁面打開時默認顯示今天的日期?

謝謝!

回答

6

你需要的選項selected,即:

<%= f.date_select(:birthdate, 
        include_blank: true, 
        selected: Date.today, # substitute 18.years.ago to prefill year 
        start_year: Date.today.year - 100, 
        end_year: Date.today.year - 18) %> 
+0

謝謝@ahmacleod!它完美的工作! – jmvbxx

1

經批准的答案將覆蓋你每次去編輯的記錄時間已分配給生日的價值。 See here

如果您的模型是,例如@student,並且您的表單是form_for @student do | f |,則應該起作用。如果@ student.birthdate爲空,它會通過Date.current失敗。

<%= f.date_select(:birthdate, 
        include_blank: true, 
        selected: @student.birthdate || Date.current, # Date.current respects time_zones 
        start_year: Date.today.year - 100, 
        end_year: Date.today.year - 18) %> 

但是,要知道,空白選項總是被設置爲當前日期,當你去編輯的記錄,要求用戶如果數據是未知的重置爲空白。這可能會導致插入錯誤的數據 - 可以說,可用性不如選擇​​開始日期。

相關問題