2014-01-21 74 views
0

我在我的控制器中執行了一個操作,該操作調用了第三方API。我想要捕獲在聯繫此API時可能引發的任何異常,並將其重定向回頁面並顯示錯誤消息。當使用rescue => e時,我只是繼續獲得正常的Rails 500錯誤頁面,而不是使用flash消息重定向。Rails救援redirect_to並顯示警報而不是錯誤頁面

begin 
    jira_post("issue/#{@incident.ticket_number}/comment", comment) 
    format.html { redirect_to incident_url, notice: "Ticket #{@incident.ticket_number} updated." } 
    format.json { head :no_content } 
rescue => e 
    format.html { redirect_to incident_url, alert: "Error connecting to JIRA API!" } 
end 

而不是被重定向我仍然得到一個錯誤頁面,指出:

SocketError in IncidentsController#show 
getaddrinfo: nodename nor servname provided, or not known 

我在做什麼的#1錯專家?

+0

在哪一行你得到這個?你能發佈整個堆棧跟蹤嗎? – Agis

+0

Gah我重定向到的頁面有另一個失敗但未被救出的API調用。這將教會我不要追蹤蹤跡,謝謝.... – irlrobot

回答

0

我被重定向到的頁面在失敗的操作中有另一個API調用,並且沒有被生成錯誤頁面的rescue'd。感謝Agis提醒我遵循堆棧跟蹤...