我正在尝试将存储在 Active Storage 中的文件变体作为邮件程序的内联附件包含在内。事情的邮寄方并不重要;我正在尝试读取上传图像的字节。
要包含原始上传的文件,这有效:
# The model
class Newsletter < ApplicationRecord
has_one_attached :header
end
# The mailer
class NewsletterMailer < ApplicationMailer
def mailshot
@newsletter = params[:newsletter]
if @newsletter.header.attached?
attachments.inline['header'] = @newsletter.header.download
end
end
end
# In the view (MJML HAML, but you get the idea...)
- if attachments['header'].present?
%mj-image{src: attachments['header'].url}
Run Code Online (Sandbox Code Playgroud)
但是,如果我不想包含原始文件,而是想包含它的一个调整大小的变体呢?
attachments.inline['header'] =
@newsletter
.header
.variant(resize: '100x100')
.processed
.???
Run Code Online (Sandbox Code Playgroud)
如何访问已处理图像的原始字节?
我当然可以仍然.download
是原始的并进行自己的处理,但希望有更简单的方法。谢谢!