4

Kaseの作成を送信するメールを正常に作成しましたが、PrawnとPrawnoによってその場で作成されたPDFを添付する必要があります。基本的に、application.com / kase / 1などのkaseにアクセスするときは、URLに.pdf、つまりapplication.com/kase/1を追加するだけです。

私は何年もかけてPDFを機能させ、自分が望むように見せましたが、自動送信メールにPDFを追加する方法がわかりません。主な理由は、自動生成されるため、PDFにリンクを付ける方法がわからないためです。

誰かがこれを機能させることができたことがありますか?

ありがとう、

ダニー

4

4 に答える 4

3

生成されたpdfをキャッシュの目的などでどこかに保存するとよいと思います。ただし、現在の構成では、生成されたページを読み取り、Net::HTTP応答を添付できます。

require 'net/http'

def your_mailer_method(record)
  #...
  attachment "application/pdf" do |a|
    a.body = Net::HTTP.get('yourdomain.com', "/kase/#{record.id}.pdf")
    a.filename="your_pdf_name.pdf"
  end  
end
于 2010-04-28T22:31:05.243 に答える
3

本当に、Prawntoを使用せず、Prawn::Documentのサブクラスを作成して必要なことを実行することを検討する必要があります。次に、コントローラーとメーラーコードの両方で、次のようになります。

MyReport.new.render

これについては、エビのドキュメントを参照してください。

http://wiki.github.com/sandal/prawn/using-prawn-in-rails

于 2010-05-02T13:19:14.193 に答える
0

新しいものについては、可能であれば、再度リクエストを送信する必要はありません::

mail.attachments["invoice.pdf"] = {:mime_type => "application/pdf" , :content => pdf_generator}

これを行う代わりに::

send_data pdf.render , :filename => file_name_here , :type => "application/pdf"

これを行うだけです::

pdf.render , :filename => file_name_here , :type => "application/pdf"

send_data最初のスニペットに記載されているように、そのpdfを電子メールの添付ファイルにレンダリングするだけです。

実際、私はgithubでGistを書いたばかりです。

于 2012-04-22T10:42:56.257 に答える
0

このコードは私のために働きます

def send_file(file, subject, text, to_email)
      @subject = subject
      @text = text
      attachments["#{invoice.invoice_number}.pdf"] = file
      from_email = abc@xyz.com      
mail(:to => to_email, :from => from_email, :subject=> subject)
  end
于 2014-03-04T07:09:14.983 に答える