Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/67.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 Ruby散列&数组到xml_Ruby On Rails_Xml_Api_Hash_Xml Serialization - Fatal编程技术网

Ruby on rails Ruby散列&数组到xml

Ruby on rails Ruby散列&数组到xml,ruby-on-rails,xml,api,hash,xml-serialization,Ruby On Rails,Xml,Api,Hash,Xml Serialization,我正在使用ActiveSupport的to_xml从散列生成一些xml 我需要这个红宝石: :Shipment => { :Packages => [ {:weight => '5', :type => 'box'}, {:weight => '3', :type => 'tube'} ] } 要生成此xml,请执行以下操作: <Shipment> <Package> <weight>5

我正在使用ActiveSupport的to_xml从散列生成一些xml

我需要这个红宝石:

:Shipment => {
  :Packages => [
    {:weight => '5', :type => 'box'},
    {:weight => '3', :type => 'tube'}
  ]
}
要生成此xml,请执行以下操作:

<Shipment>
  <Package>
    <weight>5</weight>
    <type>box</type>
  </Package>
  <Package>
    <weight>3</weight>
    <type>tube</type>
  </Package>
</Shipment>
但是,它将数组包装在另一组xml标记中,如下所示:

<Shipment>
  <Packages>
    <Package>
      <weight>5</weight>
      <type>box</type>
    </Package>
    <Package>
      <weight>3</weight>
      <type>tube</type>
    </Package>
  </Packages>
</Shipment>
请不要告诉我需要更改xml结构。。。UPS是这样说的:


有人知道如何解决问题吗?

签出builder是一种方法。您的xml.builder将类似于:

xml.shipment do
    @packages.each do |package|
        xml.package do
            xml.weight package.weight
            xml.type package.type
        end
    end
end

签出建筑商是一条路要走。您的xml.builder将类似于:

xml.shipment do
    @packages.each do |package|
        xml.package do
            xml.weight package.weight
            xml.type package.type
        end
    end
end

我刚去看看建筑商…看起来很酷。对其他RubyXML工具的任何建议都是很好的。我已经签出了xml simple…它似乎有点有限。REXML看起来将散列更改为xml可能很复杂。我刚刚检查了Builder…看起来很酷。对其他RubyXML工具的任何建议都是很好的。我已经签出了xml simple…它似乎有点有限。REXML似乎很难将散列更改为xml。