許して、みんな。Rubyに関しては、私はせいぜい初心者です。私にはかなり奇妙な振る舞いのように見えるものの説明を知りたいだけです。
Savonライブラリを使用してRubyアプリのSOAPサービスとやり取りしています。私が気付いたのは、次のコード(この相互作用を処理するために作成したクラス内)が、メンバーフィールドの値が移動すると予想される場所に空の値を渡すように見えることです。
create_session_response = client.request "createSession" do
soap.body = {
:user => @user, # This ends up being empty in the SOAP request,
:pass => @pass # as does this.
}
end
これは、との両方が空でない文字列として初期化されている@user
という事実にもかかわらずです。@pass
代わりにローカルを使用するようにコードを変更すると、期待どおりに機能します。
user = @user
pass = @pass
create_session_response = client.request "createSession" do
soap.body = {
:user => user, # Now this has the value I expect in the SOAP request,
:pass => pass # and this does too.
}
end
この奇妙な(私にとっての)行動は、私がブロックの中にいるという事実と関係があるに違いないと思います。しかし、実際には、私には手がかりがありません。誰かがこれについて私に教えてもらえますか?