拯救 rails 控制器中的无效日期

Rescuing an invalid date in a rails controller

我在控制器中有这个:

pickuptime = params[:appointment][:pickuptime]
pickuptime = DateTime.strptime(pickuptime, "%m/%d/%Y %l:%M %p %Z")

如果 DateTime.strptime 返回一个 Invalid Date 错误,我想 rescue 它并使用闪现消息 'Invalid date' 将其重定向回上一页。我怎样才能做到这一点?

我正在使用 Ruby 2.1.2 和 Rails 4.1.4。谢谢!

您可以在控制器中执行此操作:

begin
  pickuptime = params[:appointment][:pickuptime]
  pickuptime = DateTime.strptime(pickuptime, "%m/%d/%Y %l:%M %p %Z")
rescue ArgumentError => e
  flash[:error] = e.message
  redirect_to :back
  return
end

Invalid Date 错误应该是包含您想要的消息的 ArgumentError 异常。