小编Mar*_*eas的帖子

使用Rails 5.2 ActiveStorage创建和保存pdf,然后附加到电子邮件

我担心新的主动存储功能会出现问题.我想要做的是创建一个pdf(我正在使用WickedPdf)并将其附加到模型.这是第一个问题,我到目前为止唯一的想法是首先写入文件,然后打开此文件以创建附件.

self.document.attach( {
  filename: "filename.pdf",
  io: File.open(pdf_document)
})
Run Code Online (Sandbox Code Playgroud)

有没有办法从字符串创建附件?

之后我尝试将此文件附加到邮件中.这会失败,因为它需要一个文件,而不是一个blob.

attachments[document.filename.to_s] = document.blob
Run Code Online (Sandbox Code Playgroud)

再次创建一个文件对我来说似乎很奇怪.

可以请有人告诉我,如果没有编写文件,那么实现这一目标的正确方法是什么?对我来说,这似乎是不必要的,无用的和耗时的.

=====

解决方案第2部分:所以我设法在不创建文件的情况下附加文档

attachments[document.filename.to_s] = {:mime_type => 'application/pdf',
                               :content => document.attachment.blob.download }
Run Code Online (Sandbox Code Playgroud)

第一部分仍然缺失.希望有人有答案!

ruby-on-rails ruby-on-rails-5 rails-activestorage ruby-on-rails-5.2

19
推荐指数
1
解决办法
3899
查看次数