2012-09-28 58 views
1

我對軌道很陌生。我試圖設置軌道控制器的響應類型爲XML,但沒有多少運氣。我當然可以更好地理解如何響應和響應工作。將軌道控制器的響應類型設置爲xml

這裏就是我的控制器看起來像:

class ResponsesController < ApplicationController 

respond_to :xml 

    def index 

    require 'rubygems' 
    require 'telapi' 

     ix = Telapi::InboundXml.new do 

      Say('Hello.', :loop => 3, :voice => 'man') 
      Say('Hello, my name is Jane.', :voice => 'woman') 
      Say('Now I will not stop talking.', :loop => 0) 
     end 

     respond_with do |format| 
      format.xml { render } 
     end 

     puts ix.response 

    end 
end 

這就導致了一個HTTP檢索失敗。有人可以告訴我如何我可以修復控制器,並將其響應類型設置爲XML?此外,如何對工作做出迴應和迴應,這一切將會非常棒!

謝謝大家。

+0

嘗試format.xml {render xml:ix} – wizztjh

回答

2

respond_with(ix) 

更換

respond_with do |format| 
      format.xml { render } 
     end 

有渲染XML的2種方式。實施例1使用的respond_to,意思是「每一個方法將使用XML和使用對象從respond_with在解析」

實施例2使用的respond_to,意思是「使用塊下方聲明什麼類型的響應,也可以解析對象的」

例1:

class ResponsesController 
    respond_to :xml #respond_to A 

    def index 
    respond_with(@asd) # respond_with A 
    end 
end 

例2:

def ResponsesController 

    def index 
    respond_to do |format| 
    format.xml { render xml: @asd} 
    end 
    end 
end 

http://blog.plataformatec.com.br/2009/08/embracing-rest-with-mind-body-and-soul/

+0

感謝您的幫助。我最終使用了類似的格式,即format.xml {render:xml => xml.response} – dougiebuckets