我对rails非常陌生。我正在尝试将rails控制器的响应类型设置为xml,但没有太多运气。我当然能够更好地理解response_to和respond_with的工作方式。
这是我的控制器的样子:
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?另外,如果有回应和响应工作的话,那将是一个很有说服力的1-2衬里!
谢谢大家。
答案 0 :(得分:2)
替换
respond_with do |format|
format.xml { render }
end
带
respond_with(ix)
有两种渲染xml的方法。示例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/