@rubiii之前已经展示了(Savon soap body problem),您可以使用以下命令自定义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变量不在请求块的“scope”中。所以我得到了一个在nil上不能调用方法to_soap。但是,如果我使用类方法,那么我就可以让它工作。即
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我还是不明白?
发布于 2011-10-21 17:26:15
to_s.有关要指定哪些参数以及其他所有内容的信息,请访问please RTFM ;)
https://stackoverflow.com/questions/7844181
复制相似问题