私はRails 5アプリケーションでpdf請求書の生成を簡単にするためにwicked-pdfを使用しています。 wicked-pdfのpdf機能を利用する2つのアクションがあります。最初のアクションはpdfを生成し、それを新しいブラウザウィンドウにレンダリングします。 2番目の方法はpdfを電子メールに添付します。wicked_pdfとrailsを使用したエンコーディングエラーActiveJob
これらの操作はどちらも問題なく動作します。この問題は、ActiveJob/Sidekiqを使用してpdfメーラーアクションを 'deliver_later'に設定したときに発生します。私は、私はというエラーを提示しています 'deliver_later' を追加する場合:UTF-8
にASCII-8BITから "\ XFE"
を私は "deliver_now" を使用している場合、このエラーは発生しません。コマンド。 「deliver_now」を使用すると、電子メールを送信し、PDFを正しく添付します。
invoice_mailer
... 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 ...
invoices_controller.rb:ここ
は郵送アクション、メーラーや仕事のための私のコードの一部です。 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 ...
なぜこのコードはsend_invoice_mail_job.rbで "deliver_now"を使用しても動作しますが、 "deliver_later"を使用しても機能しません。
解決策は見つかりましたか?私は同じ問題を抱えています – moondaisy
@moondaisy私はしました。私は明確に覚えていないので、私が行ったことを見て周りを見なければならないだろう – Herm
時間がある場合は、ここに答えとして投稿してください:)私はこれを参照して他の質問は見つかりませんそれを行う方法の例 – moondaisy