Jak renderować krewetki pdf jako załącznik w ActionMailer? Używam delayed_job i nie rozumiem, jak mogę renderować plik pdf w akcji mailer (nie w kontrolerze). Jakiego formatu mam użyć?Rails 3 Render Prawn pdf w ActionMailer
7
A
Odpowiedz
7
Wystarczy powiedzieć Prawn, aby przekonwertować plik PDF na ciąg znaków, a następnie dodać go jako załącznik do wiadomości e-mail. Zobacz ActionMailer docs, aby uzyskać szczegółowe informacje na temat załączników.
Oto przykład:
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
0
Moje rozwiązanie:
render_to_string('invoices/show.pdf', :type => :prawn)
PDF został uszkodzony, bo nie pisać blok dla funkcji poczty i wieloczęściowe e-mail był nieprawidłowy.
3
Śledziłem RailsCasts dla PRAWN. Podejmując to, co już zostało powiedziane i co starałem się osiągnąć podobnie, ustawiłem nazwę załącznika, a następnie utworzyłem plik PDF.
InvoiceMailer:
def invoice_email(invoice)
@invoice = invoice
@user = @invoice.user
attachments["#{@invoice.id}.pdf"] = InvoicePdf.new(@invoice, view_context).render
mail(:to => @invoice.user.email,
:subject => "Invoice # #{@invoice.id}")
end
Powiązane problemy
- 1. Rails/Prawn: w jaki sposób używam pomocników szyn w klasie Prawn?
- 2. Ruby on Rails & Prawn PDF - Utwórz listę klientów
- 3. Nie można renderować pliku PDF do przeglądarki za pomocą Prawn PDF dla Ruby on Rails
- 4. ActionMailer 3 bez Railsów
- 5. Ustaw temat z szablonu ActionMailer w Rails 3?
- 6. PDF.js render pdf z przewijakiem
- 7. W jaki sposób actionmailer Rails 3 decyduje o tym, którego formatu użyć?
- 8. Rails Konfiguracja ActionMailer dla Zoho
- 9. Rails 3 Action Mailer niezainicjowanymi stała
- 10. Zagraj w Framework 2 Render pdf
- 11. Rails Render JSON - Session Lost?
- 12. Używanie Prawn na Heroku
- 13. szyny 3 + krewetka pdf + html_safe
- 14. Actionmailer nie dostarcza poczty, z szynami 3
- 15. Rails render części i layout w kontrolerze
- 16. Python + Selenium + PhantomJS render do PDF
- 17. Rails + Prawn: undefined metoda `table 'dla # <Prawn :: Dokument: 0x007fda2d594a98>:
- 18. Jak ustawić marginesy w Prawn w ruby?
- 19. Rails 4 render json zagnieżdżonych obiektów
- 20. Zintegruj Jaspera w Rails 3
- 21. Jak uprościć "render_to_string" w Rails 3?
- 22. Niezdefiniowana metoda 'default_content_type =' w ActionMailer w Rails 3.2.1
- 23. Bootstrap 3 - Drukuj/PDF
- 24. renderowanie partials w szablonach ActionMailer
- 25. Konfigurowanie konta Gmail do pracy z ActionMailer w Railsach 3
- 26. Missing Częściowa Błąd w Rails 3
- 27. Obsługa jsonp in rails 3 controller
- 28. Stubbing ActionMailer w Rspec
- 29. Formularz kontaktowy w Rails 3
- 30. Hierarchiczny MVC w Rails 3?
mam już ciami/faktur/show.pdf.prawn. InvoicesController wykonuje to pomyślnie. Próbowałem renderować go za pomocą render_to_string w mailer i dostałem uszkodzony plik PDF. Jak renderować ten istniejący plik widoku? Może być muszę określić: typ lub format dla render_to_string. – maxs