Ruby on rails 我可以用XML响应Rails中的HTML请求吗?
我想加入一个简单的API,用查询字符串响应GET请求。但是我想返回XML,而不是HTML 我甚至想在浏览器中测试这一点,这样如果我输入URL和查询字符串,就可以在响应中看到XML 我只是通过呈现Ruby on rails 我可以用XML响应Rails中的HTML请求吗?,ruby-on-rails,xml,rendering,Ruby On Rails,Xml,Rendering,我想加入一个简单的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包装器。您
:text
来获得它,但我的xml做了两件事:
1. All tag names are being downcased.
2. My xml is being wrapped in an HTML container (HTML, HEAD, BODY, etc.)
我只需要去掉那个HTML包装器。您只需使用以下工具将其呈现为xml(在控制器中):
您只需使用以下工具将其呈现为xml(在控制器中): 这个对我很有用:
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\u数组。to\u xml(:skip\u types=>true,:root=>“Items”)
,因为.to\u xml除了生成字符串(并确保它是正确的xml)之外,不做任何其他事情。这对我来说很有用:
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\u数组.to\xml(:skip\u types=>true,:root=>“Items”)
,因为.to\u xml除了生成一个字符串(并确保它是正确的xml)之外,不做任何其他事情。布局错误,仅:[:操作]
这将删除所有与布局关联的代码 布局错误,仅:[:操作]
这将删除所有与布局关联的代码 在rails 5.2.x上,就是这样做的
class UserController
在app/views/user/view.xml上显示相应的视图
xml.User.do
xml.name@user.name
结束
在rails 5.2.x上,这就是您的工作方式
class UserController
在app/views/user/view.xml上显示相应的视图
xml.User.do
xml.name@user.name
结束
我正在从头开始构建XML字符串,所以我不希望自动完成任何操作。哦,好的。无论如何,呈现为:text不应该以任何方式修改字符串,也不应该添加包装器。我只是尝试了一下,但无法重现您的问题。Oktav您是对的,是Firebug添加了包装器。当我查看原始源代码时,一切正常。我正在从头开始构建XML字符串,所以我不希望为我自动完成任何操作。哦,好的。无论如何,呈现为:text不应该以任何方式修改字符串,也不应该添加包装器。我只是尝试了一下,但无法重现您的问题。Oktav您是对的,是Firebug添加了包装器。当我查看原始源代码时,它很好。您是否为该操作设置了布局?也许:layout=>false
会起作用。layout:false
仍在给我包装器。您是否为此操作设置了布局?也许:layout=>false
会奏效。layout:false
仍在给我包装器。