Ruby on rails 将多个文件发送到Web服务

Ruby on rails 将多个文件发送到Web服务,ruby-on-rails,http,file-upload,faraday,Ruby On Rails,Http,File Upload,Faraday,我目前正试图将多个文件发送到一个Web服务(并继续,这取决于之后的响应,但这还不是我现在的位置)。 以下代码发送一个文件: def show ... conn = Faraday.new(:url => 'webservice.abc' ) do |faraday| faraday.request :multipart faraday.adapter :net_http end payload = { :files => Faraday:

我目前正试图将多个文件发送到一个Web服务(并继续,这取决于之后的响应,但这还不是我现在的位置)。 以下代码发送一个文件:

 def show
   ...
   conn = Faraday.new(:url => 'webservice.abc' ) do |faraday|
     faraday.request :multipart
     faraday.adapter :net_http
   end
   payload = { :files => Faraday::UploadIO.new("#{Rails.root}/fileone.xml", 'application/xml') }
   conn.post 'http://webservice.abc', payload
   @output = response.body
end
现在我陷入了困境,试图找到一种同时发送2个(或更多)文件的方法,这是必要的,因为Web服务的目的是比较这些文件。似乎当我将它们放入数组时,它们无法处理。 因此,我要寻找的是一种“捆绑”文件的方法,以便在以后发布它们(如前所述,它只处理一个文件)

谢谢你的时间

谢谢迪帕克

给了我一个正确方向的提示。但是应该是:files[i]——所以问题中的有效负载行是:

payload = { :files[0] => Faraday::UploadIO.new("#{Rails.root}/fileone.xml", 'application/xml'), 
            :files[1] => Faraday::UploadIO.new("#{Rails.root}/filetwo.xml", 'application/xml')}

您是否尝试过
payload={:file1=>Faraday::UploadIO.new(“{Rails.root}/fileone.xml”,“application/xml”),:file2=>Faraday::UploadIO.new(“{Rails.root}/filetwo.xml”,“application/xml”)}
请将答案编辑为独立答案,而不是对另一条注释的注释。