我没有通过savon gem
传递多个参数并赋予它们属性来获得预期的结果。
输入:
message: {
parameterId: 'timePeriod',
:query => [[:parameter=>{:@KeyId=>'geo', :@Value=>'528'}],
[:parameter=>{:@KeyId=>'timeType', :@Value=>'5'}]]
}
实际输出:
<env:Body>
<tns:DiscoverParameterValues>
<tns:parameterId>timePeriod</tns:parameterId>
<tns:query>
<element>
<parameter KeyId="geo" Value="528"/>
</element>
</tns:query>
<tns:query>
<element>
<parameter KeyId="timeType" Value="5"/>
</element>
</tns:query>
</tns:DiscoverParameterValues>
</env:Body>
</env:Envelope>
预期产出:
<env:Body>
<tns:DiscoverParameterValues>
<tns:parameterId>timePeriod</tns:parameterId>
<tns:query>
<parameter KeyId="geo" Value="528"/>
<parameter KeyId="timeType" Value="5"/>
</tns:query>
</tns:DiscoverParameterValues>
</env:Body>
</env:Envelope>
答案 0 :(得分:0)
你想制作一个哈希数组。然后,Savon将为阵列中的每个项目复制它。
query: {
parameter: [
{:@KeyId=>'geo', :@Value=>'528'},
{:@KeyId=>'timeType', :@Value=>'5'}
]
}
我在这里找到了这个答案 - https://github.com/savonrb/savon/issues/713谢谢glennfu。