簡體   English   中英

升級到 Rails 6 actionpack 6 時,WashOut::Soap 參數丟失

[英]WashOut::Soap parameters missing when upgrading to Rails 6 actionpack 6

我在我的 Ruby Rails controller 中使用了 Washout::SOAP ,它具有這樣的soap_action:

soap_action 'action_name',
              :args   => {:a => :string, :b => :string},
              :return => {'tns:result' => StringArray},
              :response_tag => 'response'

def action_name
  params
  # do somthing
end

在我的規格測試中,我有:

Savon.client( wsdl: wsdl_url ).call(:action_name, message: {a: 'A', b:'B'})

這在我使用 Rails 5 和 actionpack 5 時有效。但是,當我切換到 Rails 6 和 actionpack 6 時,params[:a] 和 params[:b] 變為 nil。

有誰知道出了什么問題? 以及如何解決這個問題?

謝謝

回答我自己:Soven 客戶端在 Rails 5 和 6 中使用不同版本的解析器(芥末)。這最終會產生不同的 xml 消息。 解決方案是在 Soven 客戶端中將 no_message_tag 設置為 true 以使用 message.to_s 而不是將其解析為 xml。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM