比较rails中的date_select并确保第一个日期不晚于第二个日期

时间:2013-07-15 08:16:28

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1 ruby-on-rails-3.2

我在db -

中的两个字段中使用date_select
<div class="control-group">
   <label class="control-label">
   <%= f.label :date_one %></label>
<div class="controls">
   <%= f.date_select :date_one%>
</div>
</div>

<div class="control-group">
   <label class="control-label">
   <%= f.label :date_two %></label>
<div class="controls">
   <%= f.date_select :date_two%>
</div>
</div>

现在我要做的是,无论date_one选择了什么日期,date_two都不应该在为date_one选择的日期之前。那可能吗?我该怎么做?是否可以设置某种验证?

由于

1 个答案:

答案 0 :(得分:2)

是的,但您应该从服务器上启动以确保将保存有效数据。然后,您可以添加客户端验证,有关详细信息,请参阅question

好吧,要添加服务器端验证,请在您的模型中执行此操作:

validate :date_two_after_date_one

def date_two_after_date_one
  errors.add :date_two, 'should be after date one' if date_two < date_one
end

客户端,您必须使用JavaScript,粘贴form_for电话。