Bonjour,
Je dois appeler une méthode d’un webservice qui prend 3 arguments, 2
strings et une structure.
Le problème c’est que lors de l’invocation j’ai l’erreur
undefined method `map' for person[firstname] person[lastname]
[email protected]:AccountAttributesStruct
Code de la structure :
class AccountAttributesStruct < ActionWebService::Struct
member :LastName, :string
member :FirstName, :string
member :Country, :string
member :Language, :string
member :EMailAccount, :string
def initialize firstname, lastname,email
self.FirstName = firstname
self.LastName = lastname
self.EMailAccount = email
end
def inspect
return self.FirstName + " " + self.LastName + " " +
self.EMailAccount
end
end
Mon fichier api :
class AccountAPI < ActionWebService::API::Base
inflect_names false
api_method :exists, :expects => [:string], :returns => [:bool]
api_method :login:, :expects => [:string], :returns => [:string]
api_method :create, :expects =>
[[:string],[:string],[AccountAttributesStruct]], :returns => [:string]
end
Et l’invocation du webservice :
client = ActionWebService::Client::XmlRpc.new(AccountAPI,
‘http://www.toto.com/xmlrpc’, :handler_name => ‘account’)
attributes = AccountAttributesStruct.new(@person.firstname,
@person.lastname, @person.email)
client.create(login,‘toto’,attributes)
Si quelqu’un voit ou je fais une erreur merci de me le dire.
PS : j’utilise rails 1.1.6