我想嘗試從params獲取日期到日期格式,如果它不能,那麼我想然後將它分配給今天一年的日期。嘗試生成無效日期的Ruby字符串日期to_date
這是我試過的。
valid_until = params[:valid_until].try(:to_date) || Date.today.next_year
的try
方法是很酷,因爲如果:valid_until
日期是零它只會返回nil。我發現的是,如果有人有一個無效的日期,如「4790224374」,那麼它將返回一個ArgumentError
作爲無效日期。 :valid_until
的日期仍然會針對to_date
運行。
我想這有一個救援似乎是唯一的答案,只是想知道是否有一個更聰明的方法來嘗試迎合nils和無效的日期錯誤,然後將其設置爲明年的默認設置。
編輯:
您可以閱讀上漲約 Try here。
您可以閱讀上漲約 to_date here
你可以在'||'處放置一個'rescue',也許放下'try'?這將是相當整潔,但我認爲缺點是所有的例外都會被捕獲。 – 2014-09-30 15:20:12
是的,我在想什麼。它有點棘手。這可能會很快變得凌亂,我花了最後一點時間看幾個想法,但似乎都增加了幾行。 – TheLegend 2014-09-30 15:22:04
當你不使用紅寶石核心,你可否請包括你正在使用的圖書館,以協助那些誰想要幫助:) – 2014-09-30 15:27:07