Rails Savon宝石钥匙大小写

时间:2016-07-21 14:31:50

标签: ruby-on-rails savon

我正在使用Savon gem访问SOAP API。问题是,API需要大写的键和小写的其他键,所以我不能使用选项convert_request_keys_to参数。

这是我需要遵守的API的格式:

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xs="XmlServices">
   <soapenv:Header/>
   <soapenv:Body>
     <xs:GetRooms>
         <xs:request>
             <xs:Credentials> 
                 <xs:Credential1>"example1"</xs:Credential1>
                 <xs:Credential2>"example2"</xs:Credential2>
                 <xs:Credential3>"example3"</xs:Credential3>
         </xs:Credentials>
     </xs:request>
 </xs:GetRooms>

正如您所看到的,request是小写的,其余的都是大写的。

这就是我使用gem的方式:

def call(method, attributes = nil)
  attributes = { 'request': { 'Credentials': attributes } }
  response = client.call(method, message: attributes)
  #do something with response
end

我称之为正确吗?我有什么选择吗?我是否需要自己分叉存储库并修改gem?

1 个答案:

答案 0 :(得分:1)

好的,实际上这很简单:

只需使用选项convert_request_keys_to :none