11
votes

Comment puis-je joindre une Prafto-rendu .pdf à un email dans Rails 2.3.5?

Mon application crée un fichier .pdf lorsqu'il est rendu en le passant à l'URL (par exemple, domaine.com/letter/2.pdf)

p>

Comment puis-je faire ce PDF réel une pièce jointe dans un email sortant. P>

Voici mon mailer: P>

def create
    @contact_letter = ContactLetter.new(params[:contact_letter])

    @contact = Contact.find_by_id(@contact_letter.contact_id)
    @letter = Letter.find_by_id(@contact_letter.letter_id)

    if @contact_letter.save
      flash[:notice] = "Successfully created contact letter."

      #redirect_to contact_path(@contact_letter.contact_id)
      redirect_to contact_letter_path(@contact_letter, :format => 'pdf')
    else
      render :action => 'new'
    end
  end


5 commentaires

Êtes-vous sur les rails 2 ou 3?


Pouvez-vous également montrer le code de la lettre-contrôleur qui envoie le PDF?


Ouais, je peux montrer le contrôleur, éditer ci-dessus.


Qu'utilisez-vous pour créer le fichier PDF? Pdfkit? Montrant peut-être le code qui génère le fichier aiderait.


J'utilise la crevette pour le générer.


3 Réponses :


5
votes

Voici un exemple pour les rails 2 xxx pré>

dans votre vue ou partout où vous appelez votre méthode: p>

ApplicationMailer.deliver_signup_notification(letter)


8 commentaires

que, ou la méthode de votre utilisation pour créer votre PDF


C'est le chemin de la méthode de création: contact_letter_path (@Contact_letter,: format => 'PDF') est-ce ce que je mets là?


Contact_letter_Path expose ce que vous voulez, donc: lettre = contact_letter_path (@Contact_letter,: format => 'pdf')


puis passez lettre à ActionMailer: j'ai fait des modifications à ma réponse


Vous voulez dire, lettre comme objet?


Donc avant que j'utilise Signup_noClaiton, j'utilise lettre = contact_letter_path (@Contact_letter,: format => 'pdf "- qui stockera dans l'objet de la lettre que le PDF peut ensuite être attaché?


Pourquoi la lettre de livraison_signup_notification (lettre) ne passe-t-elle que la lettre, mais ne passe pas le destinataire, bien que Signup_notification nécessite deux paramètres?


Cela ne semble pas fonctionner ... il semble qu'il faut y avoir une commande de fichier ouverte nécessaire ...



0
votes

Une solution rapide Une solution facile serait récupération du contenu de l'URL à l'aide de NET / HTTP et OUVER-URI, pour obtenir la pièce jointe xxx

xxx

ou, appelez la génération PDF à l'intérieur de l'action du contrôleur de votre courrier


2 commentaires

Comment puis-je appeler le PDF générer à l'intérieur de l'action du contrôleur de courrier? Pourrais-je utiliser


Pièces jointes ['free.pdf'] = Ouvrir (contact_letter_path (@Contact_letter,: format => 'PDF'))



0
votes

Je l'ai eu pour fonctionner en passant l'objet PDF directement dans la méthode Campagne_Email, puis en attribuant une pièce jointe.


0 commentaires