Rails 3 -Rendern von PDF-anzeigen und an E-Mail Anhängen
Ich habe mit Wicked_pdf für das Rendern einer Ansicht als PDF und actionmailer versenden von E-Mails, aber ich kann nicht Ihnen zusammen zu arbeiten. Ich möchte anfügen einer PDF-version eine bestimmte Ansicht auf eine E-Mail mit actionmailer und senden Sie es durch klicken auf einen link oder eine Schaltfläche. Ich habe ein link_to-Befehl sendet eine E-Mail. Hier ist mein controller, der bekommt die E-Mail generiert:
def sendemail
@user = User.find(params[:id])
Sendpdf.send_report(@user).deliver
redirect_to user_path(@user)
flash[:notice] = 'Email has been sent!'
end
Hier ist, was ich in meinem actionmailer:
class Sendpdf < ActionMailer::Base
default :from => "[email protected]"
def send_report(user)
@user = user
attachment "application/pdf" do |a|
a.body = #Something should go here, maybe WickedPDF.new.something?
a.filename = 'MyPDF'
end
mail(:to => user.email, :subject => "awesome pdf, check it")
end
end
Ich habe gesehen, viele Fragen und Antworten, die den meisten Umgang mit den Garnelen. Es scheint, wie es sein sollte, eine einfache Antwort auf diese. Kann mir jemand helfen?
UPDATE ich bin dankbar für einen Vorschlag, wie eine alternative option in der Antwort unten. Aber ich würde wirklich gerne lernen wie das Rendern einer Ansicht als PDF und hängen Sie es an meine E-Mail. Ich bin offen für etwas anderes wie Garnelen oder irgendetwas anderes, wenn ich muss.
InformationsquelleAutor der Frage FattRyan | 2011-04-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
Gibt es 2 Möglichkeiten.
Entweder, Sie wollen, die pdf-Datei eingebettet werden in die E-Mail, die Sie senden, so dass, wenn der Benutzer lädt die pdf-Datei aus der E-Mail, es gibt keine Anforderung an die neue pdf-render-Aktion für Ihre jeweiligen Controllers.
Ich weiß nicht, wie zu tun dies effizient, da ich dies noch nie getan haben.
Oder, stellen Sie nur einen link auf die pdf-Datei in Ihrem E-Mail-und, wenn der Benutzer darauf klickt, wird nun die Aktion zum erstellen der pdf-Datei aufgerufen wird, und dann werden die user es downloaden können.
Auf diese Weise, wenn viel Last auf dem server für das herunterladen der pdf ' s, leiten Sie diese Anfragen irgendwo sonst. Kurz gesagt, es gibt einen großen Spielraum für die Effizienz.
Einen Beispiel-code für die 2. Methode(code wurde geschrieben mit PDFkit, so ändern sich entsprechend):
Ersetzen Sie die
Pdf.find(params[:id]).content
wie pro Ihre Wahl, und dieto_pdf
Methode, wie pro wickedPDF.Dann können Sie übergeben Sie einfach den link für die pdf-Datei herunterladen, in Ihr E-Mail wie diese
oder was auch immer Ihnen als pro wickedPDF.
InformationsquelleAutor der Antwort Jatin Ganhotra
2 gute Möglichkeiten, dies zu tun, wie Sie wollen:
1: Erstellen Sie die pdf-Datei in den controller, dann auf senden, um die E-Mail als param.
2: Erstellen Sie die pdf-Datei in das mailer-direkt (ein wenig komplizierter, aber kann aufgerufen werden ein Modell)
InformationsquelleAutor der Antwort Unixmonkey
Ich versuche, etwas ähnliches zu tun wie das, was Sie wollen zu tun, obwohl Sie es noch nicht läuft:
Im Grunde ist es versucht zu Rendern, die Sicht selbst (es konfiguriert ist, mit einem anderen format) und dann befestigt Sie an die E-Mail.
Die einzige Sache ist, dass es nicht funktioniert 🙁
InformationsquelleAutor der Antwort anders