gpt4 book ai didi

ruby-on-rails - Rails 3-从 View 中呈现PDF并附加到电子邮件

转载 作者:行者123 更新时间:2023-12-03 12:06:24 25 4
gpt4 key购买 nike

我一直在使用Wicked_pdf将 View 呈现为PDF格式,并使用actionmailer来发送电子邮件,但是我无法让它们协同工作。我想使用actionmailer将某个 View 的PDF版本附加到电子邮件,然后通过单击链接或按钮将其发送出去。我有一个link_to命令可以发送电子邮件。这是我的 Controller ,用于生成电子邮件:

def sendemail
@user = User.find(params[:id])
Sendpdf.send_report(@user).deliver
redirect_to user_path(@user)
flash[:notice] = 'Email has been sent!'
end

这是我的 Action 邮件程序中的内容:
class Sendpdf < ActionMailer::Base
default :from => "myemail@email.com"

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

我已经看到很多问题和答案,其中大多数是与Prawn有关的。似乎应该对此有一个简单的答案。有人可以帮忙吗?

更新,我很高兴能在下面的答案中将其用作替代选项。但是,我真的很想学习如何将 View 呈现为PDF并将其附加到我的电子邮件中。我愿意使用大虾或其他需要的东西。

最佳答案

有两种方法。

  • 要么,您希望将pdf嵌入到您要发送的电子邮件中,这样,当用户从电子邮件中下载pdf时,就不会要求您为各自的 Controller 呈现新的pdf操作。
    我不知道如何有效地做到这一点,因为我以前从未做到过。
  • 或者,您只需在电子邮件中提供指向pdf的链接,当用户单击它时,现在将调用创建pdf的操作,然后用户可以下载它。
    这样,如果服务器上有很多下载pdf的负担,则可以将这些请求重定向到其他地方。简而言之,效率的范围很大。

  • 第二种方法的示例代码(所提供的代码是使用PDFkit编写的,因此请相应地进行更改):
    class PdfsController < ApplicationController
    def pdf
    respond_to do |format|
    format.pdf { render :text => wickedPDF.new( Pdf.find(params[:id]).content ).to_pdf }
    end
    end
    ...
    end

    根据您的选择替换 Pdf.find(params[:id]).content,并根据wickedPDF替换 to_pdf方法。

    然后,您只需像这样在电子邮件中传递pdf下载的链接
    <%= link_to "Download", pdf_pdf_path(pdf, :format => "pdf") %>

    或任何适用于wickedPDF的西装。

    关于ruby-on-rails - Rails 3-从 View 中呈现PDF并附加到电子邮件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5762583/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com