我想放入一个简单的API,它使用查询字符串响应GET请求。但我想返回XML,而不是HTML。
我甚至想在浏览器中对此进行测试,这样如果我输入了URL和查询字符串,那么请在响应中查看XML。
我只是通过渲染:text
得到它,但我的xml正在做两件事:
1. All tag names are being downcased.
2. My xml is being wrapped in an HTML container (HTML, HEAD, BODY, etc.)
我只需要摆脱那个HTML包装器。
答案 0 :(得分:2)
这个适用于我:
respond_to do |format|
format.xml do
headers['Content-Disposition'] = 'attachment;filename="katalog.xml"'
render :xml => xml_array.to_xml(:skip_types => true, :root => "Items"),
:layout => false,
:content_type => Mime::XML
end
end
你应该能够用你的字符串替换xml_array.to_xml(:skip_types => true, :root => "Items")
,因为.to_xml除了生成一个字符串(并确保它是正确的XML)之外什么都不做。
答案 1 :(得分:1)
您只需使用:
呈现为xml(在控制器中)render xml: @your_object
答案 2 :(得分:0)
布局错误,仅限:[:action]
这将删除所有布局相关代码。
答案 3 :(得分:0)
在5.2.x上,这是您的操作方式
class UserController < ApplicationController
def view
@user = User.find(params[:id])
render formats: [:xml]
end
end
在app / views / user / view.xml中具有相应的视图
xml.User do
xml.name @user.name
end