ruby-on-rails - 无模型的 Carrierwave 临时文件

标签 ruby-on-rails carrierwave

对于最近上传的未链接到任何模型的文件,我需要能够将文件附加到邮件(使用 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] 是使用表单上传的临时文件的路径。怎么能这样呢?

这也暗示了另一个问题:发送邮件后,我是否应该从临时文件中手动删除文件?如果是,如何?

最佳答案

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

终于搞定了:

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

关于ruby-on-rails - 无模型的 Carrierwave 临时文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12315977/

相关文章:

ruby-on-rails - rails : Link_to raw (' ' ) when adding to another element

ruby-on-rails - rails add ordered, index or full 来加速查询

ruby-on-rails - 使用载波图像作为 CSS 背景图像的 Turbolinks

ruby-on-rails - 通过 Carrierwave 从 WickedPDF 获取 PDF 以作为附件

ruby-on-rails - 使用 carrierwave 将图像上传到谷歌云存储,文件名最终被保存而不是存储桶中图像的公共(public)链接

ruby-on-rails-3 - 从 Carrierwave 文档附件的链接下载文件

ruby-on-rails - 不同文件类型的载波文件上传

ruby-on-rails - Ruby Google API key 和分析

ruby-on-rails - 如何在Ruby on Rails中使用Nokogiri中的XPath从HTML中省略脚本元素?

ruby-on-rails - 未定义的方法,为什么?