0

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

我找到了一些关于这个主题的旧答案,对我来说似乎还不清楚。(注意我在我看来使用date_select助手)

我已经搜索了有关日期验证的信息,但我正在寻找一个有效的最新解决方案

我会感谢任何建议。谢谢你

4

1 回答 1

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
于 2013-10-02T15:18:26.103 回答