运维开发网

ruby-on-rails – 没有模型的Carrierwave临时文件

运维开发网 https://www.qedev.com 2020-05-11 10:28 出处:网络 作者:运维开发网整理
我需要能够将文件附加到邮件(使用Mailer)以获取最近上传的文件,该文件未链接到任何模型. 在上传表单的代码中: <%= form_for(:mail, :url => {:action => 'send_mail'}, :html => {:multipart => true}) do |f| %> <table summary="send_table"> <tr> <th>Att
我需要能够将文件附加到邮件(使用Mailer)以获取最近上传的文件,该文件未链接到任何模型.

在上传表单的代码中:

<%= form_for(:mail, :url => {:action => 'send_mail'}, :html => {:multipart => true}) do |f| %>
<table summary="send_table">
  <tr>
    <th>Attachment</th>
    <td><%= f.file_field(:attachment) %><a id="attachment"></a></td>
  </tr>
</table>

<%= submit_tag "Send!" %>

现在,我在send_mail操作中正在做的事情是这样的:

MyMailer.send_mail(params[:mail][:attachment]).deliver

params [:mail] [:attachment]是使用表单上传的临时文件的路径.怎么能这样做?

这也意味着另一个问题:一旦发送邮件,我应该从temp手动删除文件吗?如果有,怎么样?

复制评论中的答案,以便从“未答复”过滤器中删除此问题:

最后钉了它:

unless (params[:mail][:attachment]).nil?
  uploader = AttachmentUploader.new
  uploader.cache!(params[:mail][:attachment])
  @file_name = uploader.filename
  @file_data = uploader.file.read()
end

然后

MyMailer.send_mail(@file_name,@file_data)

〜每user1563325回答一次

0

精彩评论

暂无评论...
验证码 换一张
取 消