如何附加在Rails邮件程序中保存在DriveHQ中的文件?

时间:2014-08-22 09:04:49

标签: ruby-on-rails ruby ruby-on-rails-3 ftp

在我的应用程序中,我有一个文件上传选项。上传的文件用于保存在DriveHQ ftp服务器中。上传后我想发送邮件给管理员,上传的文件作为附件。

我尝试如下

 uri = URI::FTP.build(['username:password', 'ftp.drivehq.com', nil,"\\My Documents\\#{17}\\Fitness.txt", 'i'])

在邮件中:

 attachments['image'] = {mime_type: 'text/plain',content: File.read(uri)}

但它不起作用。它返回错误

 bad component(expected relative path component): \My Documents\17\Fitness.txt;type=i

1 个答案:

答案 0 :(得分:0)

我猜您是以错误的方式使用API​​。

您需要下载该文件,是的,您可以通过为FTP服务器创建URI来实现,但是您需要将该文件下载到临时目录。

之后,在邮件程序中,您会阅读该文件。

请记住,因为File是IO的子类,并且它没有read方法,所以当您调用File.read时,实际上是在调用IO.read