2011-02-16 51 views
2

導軌支持流文字更新從瓦特/動作控制器:是否有可能設置狀態碼,同時使用渲染:文本=> PROC

render :text => proc { |response, output| 
    10_000_000.times do |i| 
    output.write("This is line #{i}\n") 
    end 
} 

類似地,文本可被呈現瓦特/ HTTP狀態代碼:

render :text => ":(", :status => 400 

我想知道,如果1000萬隻裏面寫我們遇到一個錯誤,是可以關閉的水流W /狀態碼?

謝謝你的時間!

回答

1

您可以通過捕獲錯誤並突破proc來關閉流。然後,您可以傳遞錯誤消息或簡單地關閉您的流。例如:

render :text => proc { |response, output| 
    10_000_000.times do |i| 
    begin 
     output.write("This is line #{i}\n") 
     raise StandardError, "reached line 100!" if i == 100 
    rescue Exception => e 
     response.status = 400 
     output.write(e.message) 
     break 
    end 
    end 
} 
+2

我會做一個簡單的`救援`那裏 - '救援異常'捕捉的一切。 – zetetic 2011-02-16 19:14:12

相關問題