Простите меня, ребята. Я в лучшем случае новичок, когда дело доходит до Ruby. Мне просто интересно узнать объяснение того, что мне кажется довольно странным поведением.
Я использую библиотеку Savon для взаимодействия с SOAP-сервисом в моем приложении Ruby. Я заметил, что следующий код (в классе, который я написал для обработки этого взаимодействия) пропускает пустые значения, где я ожидаю, что значения полей-членов будут идти:
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
Я предполагаю, что это странное (для меня) поведение должно иметь какое-то отношение к тому факту, что я внутри блока; но на самом деле, я понятия не имею. Может ли кто-нибудь просветить меня на этом?