max*_*axs 7 ruby-on-rails actionmailer prawn
如何在ActionMailer中将prawn pdf渲染为附件?我使用delayed_job并且不明白,我怎么能在动作邮件程序中渲染pdf文件(不在控制器中).我应该使用什么格式?
小智 7
您只需要告诉Prawn将PDF呈现为字符串,然后将其添加为电子邮件的附件.有关附件的详细信息,请参阅ActionMailer文档.
这是一个例子:
class ReportPdf
def initialize(report)
@report = report
end
def render
doc = Prawn::Document.new
# Draw some stuff...
doc.draw_text @report.title, :at => [100, 100], :size => 32
# Return the PDF, rendered to a string
doc.render
end
end
class MyPdfMailer < ActionMailer::Base
def report(report_id, recipient_email)
report = Report.find(report_id)
report_pdf_view = ReportPdf.new(report)
report_pdf_content = report_pdf_view.render()
attachments['report.pdf'] = {
mime_type: 'application/pdf',
content: report_pdf_content
}
mail(:to => recipient_email, :subject => "Your report is attached")
end
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2781 次 |
| 最近记录: |