to_xml到activerecord包括xml声明,如下所示。
<?xml version="1.0" encoding="UTF-8"?>
我们如何将版本更改为1.1并更改编码?
我们可以使用to_xml(:skip_instruct => true)
完全隐藏声明。
答案 0 :(得分:1)
如果您正在使用restfull路由,那么访问some_url.xml将为您提供您所描述的结果。如果这是您为xml提供服务的方式,那么您可以定义自己的xml构建器模板。它的工作方式与视图的工作方式完全相同 这是一个例子
您的控制器操作
def show
@obj = SomeClass.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.xml { render :layout => false }
end
end
然后在您通常放置show.html.erb的views文件夹中创建一个show.xml.builder文件,其内容看起来像这样
xml.someclass do
xml.id(@obj.id)
xml.name(@obj.name)
end
在此模板中,您可以添加<?xml version="1.1" encoding="UTF-8"?>
或您要添加的任何xml声明
<强>更新强> 您不需要提供视图,只需要RESTfull路由,控制器和具有响应XML格式的respond_to的操作。 Rails会选择你要渲染的xml,并在以与视图工作完全相同的方式命名的视图文件夹中查找.xml.erb文件