在我的Rails应用程序中,我想检查重定向是否正常工作,如果没有,则重定向到我知道可以工作的其他页面。基本上,我有一行说
redirect_to("somesite")
如果重定向有效,它会把我带到那里,但如果没有,我会收到如下回应:
Completed 302 Found in 1ms (ActiveRecord: 0.0ms) ERROR URI::InvalidURIError
我尝试使用可以捕获URI :: InvalidURIError的rescue块,但是错误被抛出并且永远不会到达救援块。虽然我正在做的事情可能有点不正统,但我想知道是否有办法从服务器获取“ERROR URI :: InvalidURIError”的错误消息并使用该信息在我的代码中写入条件?谢谢!
答案 0 :(得分:1)
您可以在redirect_to操作之前验证您的网址。
例如
url = "somesite"
if valid? uri
redirect_to uri
else
#handler
end
private
def valid?(uri)
!!URI.parse(uri)
rescue URI::InvalidURIError
false
end