Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 我可以用XML响应Rails中的HTML请求吗?_Ruby On Rails_Xml_Rendering - Fatal编程技术网

Ruby on rails 我可以用XML响应Rails中的HTML请求吗?

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包装器。您

我想加入一个简单的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包装器。

您只需使用以下工具将其呈现为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
仍在给我包装器。