Ruby on Rails的日期问题

时间:2012-03-11 07:37:12

标签: ruby-on-rails ruby

我只是在开发一个简单的Ruby on Rails应用程序来保存员工的数据信息,但我意识到我需要一种方法来检查就业日期肯定需要是辞职日期的开始。 / p>

<div class="field">
   <%= f.label :date_of_employment %><br />
   <%= f.date_select :date_of_employment, :start_year =>1990 %>
</div>
<div class="field">
   <%= f.label :date_of_resignation %><br />
   <%= date_select :date_of_resignation, :start_year => Time.now %>

2 个答案:

答案 0 :(得分:2)

如果您愿意为项目添加外部代码,则应检查validates timeliness gem。它添加了各种基于时间/日期的验证。

包括验证一个字段是在另一个字段之前/之后。例如,您可以在模型中使用以下命令:

validates_datetime :date_of_resignation, :after => :date_of_employment

这个gem不依赖于javascript工作,它是纯Ruby。

答案 1 :(得分:0)

您可以考虑的一个简单解决方案是使用javascript函数来验证表单提交上的这两个日期。这样,您的服务器就不需要处理无效数据。

我们可以在保存到数据库之前在Rails模型级别执行验证。例如,模型中的这些代码行将在保存之前验证数据

validate :verify_date
def verify_date
   errors.add("Invalid date") if date_of_resignation < date_of_employment
end