2013-06-26 54 views
0

當我想這段代碼,即在201個狀態碼的情況下工作409響應代碼.....不能處理軌3

resource_m = RestClient::Resource.new Rails.application.config.sta+"/mov" 
resource_m = resource_m.post @hash.to_json, :content_type => :json, :accept =>:json 
puts "code...#{resource_m.code}" 

case resource_m.code 
when 201 
    respond_to do |format| 
    @noticec = {:name =>"Successfully",:code => "201"} 
    format.json { render :json => @noticec } 
    end 
when 409 
    respond_to do |format| 
    @noticec = {:name =>"already exists",:code => "409" } 
    format.json { render :json => @noticec } 
    end 

when 401 
    respond_to do |format| 
     @noticec = {:name =>"Error",:code => "401" } 
     format.json { render :json => @noticec } 
    end 
else 
    respond_to do |format| 
     @noticec = {:name =>"Something went wrong" } 
     format.json { render :json => @noticec } 
    end 

end 

但是,如果從服務器的響應代碼是409 ,導致出錯的導軌已完成500內部 服務器錯誤1370ms ActionView :: MissingTemplate(Missing template)。 但是,當我在REST-CLIENT中嘗試此操作時,我可以看到狀態碼是409衝突。。我不能在控制器中使用該響應代碼。

回答

0

IIRC resource.post在4xx,5xx響應中引發異常。我相信,關於Ruby的HTTP客戶端和十分肯定RESTClient實現,但它很容易修復

begin 
    resource_m = resource_m.post @hash.to_json,... 
rescue 
    puts_or_debug 
end 
+0

我有嘗試與展開救援,現在我得到的代碼在救援 救援=>電子 看跌期權「錯誤.....#{e.message}「 結束 錯誤..... 409衝突 – user2342350