@ rubiii ранее показывал ( проблема с телом мыла Savon ), что вы можете настроить запросы Savon с помощью
class SomeXML
def self.to_s
"<some>xml</some>"
end
end
client.request :some_action do
soap.body = SomeXML
end
Но зачем вам использовать такой метод класса? Скорее всего, вы попросите экземпляр класса превратить себя в хеш для тела запроса. т.е.
@instance = SomeClass.new
client.request :some_action do
soap.body = @instance.to_soap
end
Однако, когда я пытаюсь это сделать, переменная @instance не находится в области видимости внутри блока запроса. Так что я получаю метод to_soap для вызова nil. Но если вместо этого я использую метод класса, я смогу заставить его работать. т.е.
class SomeClass
@@soap_hash = nil
def self.soap_hash=(hash)
@@soap_hash = hash
end
def self.soap_hash
@@soap_hash
end
end
SomeClass.soap_hash = @instance.to_soap
client.request :some_action do
soap.body = SomeClass.soap_hash
end
Я не понимаю?