在rails控制器中挽救无效日期

jac*_*n09 4 ruby exception-handling ruby-on-rails rescue

我在控制器中有这个:

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

rescue如果我发DateTime.strptimeInvalid Date错误并将其重定向回上一页并显示flash消息"Invalid date",我想这样做.我怎么能做到这一点?

我使用的是Ruby 2.1.2和Rails 4.1.4.谢谢!

Edw*_*ard 9

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

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
Run Code Online (Sandbox Code Playgroud)

Invalid Date错误应该是一个ArgumentError异常你想要的信息.