Я использую wicked-pdf, чтобы упростить создание pdf-счетов в моем приложении Rails 5. У меня есть два действия с использованием функции pdf wicked-pdf. Первое действие создает файл pdf и отображает его в новом окне браузера. Второй метод прикрепляет PDF к электронному письму.Ошибка кодирования с использованием wicked_pdf и rails ActiveJob
Оба эти действия работают нормально. Проблема возникает, когда я устанавливаю действие pdf-mailer на «deliver_later» с помощью ActiveJob/Sidekiq. Когда я добавляю 'deliver_later' Я представил с указанием ошибки:
"\ XFE" из ASCII-8bit в UTF-8
Эта ошибка не произойдет, если я использую "deliver_now" команда. Используя «deliver_now», отправьте электронное письмо и правильно вставьте PDF-файл.
Вот некоторые из моего кода для почтового действия, почтовой программы и задания:
invoices_controller.rb
...
def create
respond_to do |format|
format.html do
pdf = render_to_string(pdf: @order.ruling_invoice,
template: "orders/invoices/show.pdf.haml",
encoding: "utf8",
locals: { order: @order.decorate}
)
SendInvoiceMailJob.new.perform(@order, pdf, @order.token)
redirect_to order_url(id: @order.id, subdomain: current_company.slug), notice: "This invoice has been emailed."
end
end
end
...
send_invoice_mail_job.rb
...
def perform(order, pdf, order_token)
InvoiceMailer.send_invoice(order, pdf, order_token).deliver_later
end
...
invoice_mailer. rb
...
def send_invoice(order, pdf_invoice , invoice_token)
@order = order
attachments["#{invoice_token}.pdf"] = pdf_invoice
mail(
to: @order.email,
from: @order.seller_email
)
end
...
Зачем нужен этот код, используя «deliver_now» в send_invoice_mail_job.rb, но он не работает с использованием «deliver_later»?
Вы нашли решение? У меня та же проблема – moondaisy
@moondaisy Я сделал. Я должен был бы пойти и посмотреть вокруг на то, что я сделал, хотя, насколько я не помню ясно – Herm
Если у вас есть время, отправьте его в качестве ответа здесь :) У меня нет других вопросов, связанных с этим или примеры того, как это сделать – moondaisy