Savon は、WSDL から SOAP エンベロープを生成することに頑固です。それは不適切に行われ、修正する方法がわかりません。またwsdl:
、何らかの理由ですべてに名前空間を挿入する自由も必要です。
私が構築しているリクエストはtns:
名前空間を使用しています。Savon::Model を使用できるようになりたいと思っていますが、今は次のことを行う必要があります。
client.request :tns, :function_name do
soap.body = { params }
end
次のようなものの代わりに:
super(params)
すべての関数でリクエスト ブロックを作成するのは面倒です。理想的なケースで起こるように、Savon が正しい関数を自動的に呼び出すのではなく、毎回関数名を定義する必要があります。今、私の機能は次のようになっています
def foo
client.request :tns, :foo do
...
end
「foo」を 2 回言わなければならないのはばかげているように思えます。Savon::Model を拡張するクラスで、すべてのリクエストに対してデフォルトの名前空間を設定する方法はありますか?