小编Nic*_*ick的帖子

访问已处理的 ActiveStorage::Variant 的原始字节

我正在尝试将存储在 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是原始的并进行自己的处理,但希望有更简单的方法。谢谢!

ruby-on-rails rails-activestorage

4
推荐指数
1
解决办法
433
查看次数

标签 统计

rails-activestorage ×1

ruby-on-rails ×1