我搜索验证用户出生日期的解决方案,例如,如果用户尝试仅提交日期和月份,但他没有选择年份,则日期将无效,但如果年份为年,则rails不会显示任何异常或错误没有设置为例,但他跳过日期,日期不会更新
我找到了一些关于这个问题的旧答案,对我来说似乎并不清楚。 (注意我在视图中使用 date_select 帮助器)
我已经对日期验证进行了搜索,但我正在寻找一种有效的解决方案最新
我会感谢任何建议。谢谢
答案 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