使用类作为类型的Rails WashOut创建一个额外的元素

时间:2014-02-20 10:09:39

标签: ruby-on-rails wash-out

使用Rails washout我有一个类作为复杂类型

class Hdr < WashOut::Type
  map :Hdr => {
        :Timestamp => :datetime,
        ...
      }
end

class HdrContainer < WashOut::Type
  type_name 'Hdr_con'
  map :Hdr => Hdr
end

我用它如下

  soap_action "DEL",
              :args   => {  :Hdr => Hdr,
                            ...

然而这会产生

  <ns:DEL soapenv:encodingStyle="http://schemas.xmlsoap.org/soap/encoding/">
     <Hdr xsi:type="ns:hdr">
        <Hdr xsi:type="ns:Hdr">
           <Timestamp xsi:type="xsd:dateTime">...</Timestamp>

如果在另一个Hdr中没有Hdr元素,我该怎么办?我正在寻找我定义的Hdr类型作为DEL元素的直接子元素

1 个答案:

答案 0 :(得分:1)

class Hdr < WashOut::Type
  map :Hdr => {
        :Timestamp => :datetime,
        ...
      }
end

可以更改为:

class Hdr < WashOut::Type
  map 
        :Timestamp => :datetime,
        ...
end

这将删除额外级别