如何通过rails 3中的ftp写入csv文件?

我试图通过ftp写入csv文件。 这是我到目前为止:

require 'net/ftp' require 'csv' users = User.users.limit(5) csv_string = CSV.generate do |csv| csv << ["email_addr", "first_name", "last_name"] users.each do |user| new_line = [user.email, user.first_name, user.last_name] csv << new_line end end csv_file = CSV.new(csv_string) ftp = Net::FTP.new('**SERVER NAME**') ftp.login(user = "**USERNAME**", passwd = "**PASSWORD**") ftp.storbinary('STOR ' + 'my_file.csv', csv_file) ftp.quit() 

我得到错误“错误的参数数量(2个为3)”。 当我将行更改为ftp.storbinary(’STOR’+’my_file.csv’,csv_file,1024)时,它表示“错误的参数数量(1表示0)”。 我也试过使用storlines,但这也给了我错误。 有没有人对如何处理这个有什么想法?

 require 'net/ftp' 

登录FTP服务器

 ftp = Net::FTP.new('ftp.sample.com', 'test', 'pass') 

要么

 ftp = Net::FTP.new('ftp.sample.com') ftp.login('test', 'pass') 

切换到所需的目录

 ftp.chdir('source/files') 

获取我们需要的文件并将其保存到’ftp_photos’目录中

 ftp.getbinaryfile('photos_2009-03-29.zip', 'ftp_photos/photos.zip') 

我们完成了,所以我们需要关闭连接

 ftp.close 

http://travisonrails.com/2009/03/29/ruby-net-ftp-tutorial

这对你有所帮助。

在线

 ftp.storbinary('STOR ' + 'my_file.csv', csv_file) 

csv_file需要是一个实际的File对象,而不是另一种对象。

>(来自ruby核心)

storbinary(cmd,file,blocksize,rest_offset = nil){| data | …}


将连接置于二进制(映像)模式,发出给定的服务器端命令(例如“STOR myfile”),并将名为file的文件的内容发送到服务器。 如果给出了可选块,它也会以块大小字符块的forms传递数据。