2013-06-06 67 views
1

我認爲這是一個簡單的問題。在我的應用程序中,我有一個模型,用戶在提交新記錄時選擇「開始」日期和「停止」日期。日期只有年份,不包括月份和日期。Rails - 如何驗證日期的一個字段對另一個字段

我只想寫一個驗證以確保停止日期大於開始日期,因此您無法提交在2012年開始並在2008年結束的內容。我該怎麼做?

我的表單字段是如下:

<%= select_year Date.today, start_year: Time.now.year, end_year: Time.now.year - 95, field_name: :start %> 

<%= select_year Date.today, start_year: Time.now.year, end_year: Time.now.year - 95, field_name: :stop %> 
+0

除了下面的答案,如果有人把一個結局放在一個小於一個開始的位置,考慮交換這些值。 – baash05

回答

3

如果你想要做一個服務器端驗證,你可以添加驗證模型

validate :stop_date 


def stop_date 
    errors.add(:stop, "stop date cannot be older than start date") if stop < end 
end 

你可以填充視圖上的錯誤。

+0

我認爲這裏的含義是,你可以更好地使用一些javascript對輸入進行測試。 :) – baash05

+0

謝謝我同意。我正在使用客戶端驗證寶石,所以我會試圖找出如何使用它的JavaScript驗證 – Zephyr4434

相關問題