2015-03-31 61 views
1

我想能夠重定向從mongoid錯誤引發的輸出。我有以下佈局一些簡單的代碼:Mongoid錯誤重定向

begin 
    [ruby code here to query database] 
rescue [Moped Exception here] => e 
    puts e.message 
end 

當錯誤發生時,我得到它的格式如下:

Moped::Errors::ConnectionFailure: Could not connect to a primary node for replica set <Moped::Cluster nodes=[<Moped::Node resolved_address=」ipAddress」>, <Moped::Node resolved_address=」ipAddress」>]> 

顯示此錯誤前幾次例外實際上是捕獲並顯示。我很滿意發生錯誤的事實,但我想隱藏上面的錯誤輸出/不顯示它,只顯示異常。有沒有辦法重定向從ConnectionFailure錯誤引發的錯誤輸出。或者一種配置mongoid的方式,以便不顯示錯誤消息(我正在從控制檯運行)?任何重定向錯誤的方法都會有所幫助。

回答

0

的mongoid文件說,你不應該試圖從ConnectionFailure搶救: http://mongoid.org/en/moped/docs/driver.html#errors

除了這一點,你說如果它發生你不在乎。你嘗試過什麼代碼來重定向用戶?還有你在用什麼(Rails,Sinatra等)?

對於Rails的我通常做到以下幾點:

if !request.env["HTTP_REFERER"].blank? and request.env["HTTP_REFERER"] != request.env["REQUEST_URI"] 
    redirect_to :back 
else 
    redirect_to root_path 
end 

這將嘗試,如果能夠將用戶發送回他們以前的路徑(如果它被存儲),否則它會帶來他們的根。