Прикрепить файл активного хранилища к почтовой программе - PullRequest
0 голосов
/ 31 декабря 2018

Я перепробовал все и до сих пор не могу заставить это работать.

У меня есть два типа приложений в моей системе, которые предварительно квалифицированы и отправлены кредиторам,

1) один генерирует файл PDF 2) второй должен использовать активные вложения для хранения и прикреплять их кActionMailer

Первый работает, второй дает мне следующую ошибку:

[ActionMailer :: DeliveryJob] [905177a5-b0e9-46f4-ba9a-fc4630e873f9] Ошибка выполнения ActionMailer:: DeliveryJob (идентификатор задания: 905177a5-b0e9-46f4-ba9a-fc4630e873f9) из Async (почтовые программы) в 140,14 мс: Errno :: ENOENT (Нет такого файла или каталога @ rb_sysopen - https://funderhunt.co/rails/active_storage/blobs/eyJfcmFpbHMiOnsibWVzc2FnZSI6IkJBaHBBZ1lIIiwiZXhwIjpudWxsLCJwdXIiOiJibG9iX2lkIn19--fa91a15681c23d47d767169c7821601aa15ed2b3/Statuses.pages?disposition=attachment):

Ссылка верна, хотя:

Мой почтовый код для этой части выглядит следующим образом:

      q = 0
      statement.files.each do |file|
        q += 1
        bank_statement = File.read(rails_blob_url(file, disposition: "attachment"))
        attachments["statement_#{q}.pdf"] = { :mime_type => 'application/pdf', :content => bank_statement }
      end

Что не так? Не могли бы вы помочь. Заранее спасибо.

1 Ответ

0 голосов
/ 01 января 2019

Вы должны быть в состоянии сделать что-то вроде:

statement.files.each_with_index do |file, q|
  attachments["statement_#{q + 1}.pdf"] = { mime_type: 'application/pdf', content: file.blob.download }
end

file.blob.download вернет содержимое файла, аналогично File.read.

...