使用date_select时如何检查日期是否正确

时间:2013-10-02 14:39:12

标签: validation ruby-on-rails-4

我搜索验证用户出生日期的解决方案,例如,如果用户尝试仅提交日期和月份,但他没有选择年份,则日期将无效,但如果年份为年,则rails不会显示任何异常或错误没有设置为例,但他跳过日期,日期不会更新

我找到了一些关于这个问题的旧答案,对我来说似乎并不清楚。 (注意我在视图中使用 date_select 帮助器)

我已经对日期验证进行了搜索,但我正在寻找一种有效的解决方案最新

我会感谢任何建议。谢谢

1 个答案:

答案 0 :(得分:0)

如果日期无效,DateTime.parse(..)将引发错误:

[1] pry(main)> DateTime.parse("Feb 31, 2013")
ArgumentError: invalid date
from (pry):1:in `parse'
[2] pry(main)> e = begin; DateTime.parse("Feb 31, 2013"); rescue => e; e; end
=> #<ArgumentError: invalid date>

所以只需捕获错误以检查有效日期:

def valid_date?(string)
  begin
    DateTime.parse(string)
    return true
  rescue => e
    return false
  end
end