2013-06-06 66 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

相关问题