1

Я использую 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»?

+0

Вы нашли решение? У меня та же проблема – moondaisy

+0

@moondaisy Я сделал. Я должен был бы пойти и посмотреть вокруг на то, что я сделал, хотя, насколько я не помню ясно – Herm

+0

Если у вас есть время, отправьте его в качестве ответа здесь :) У меня нет других вопросов, связанных с этим или примеры того, как это сделать – moondaisy

ответ

Смежные вопросы