1
は、私は、pdfファイルを生成します。before_saveコールバックのモデルアクションで生成した直後にPDFファイルをダウンロードできますか?お支払い方法は請求書であればモデルで
class Order < ApplicationRecord
require 'prawn'
after_save :generate_pdf
def generate_pdf
if payment_method.name == 'Invoice'
pdf = Prawn::Document.generate("public/pdf/invoice_#{SecureRandom.hex}_#{user.name}_№#{id}.pdf",
page_size: [200, 500],
page_layout: :landscape,
margin: 10) do |pdf|
pdf.text_box 'A test text', at: [0, 170]
end
end
end
end
このコードはpublic/pdf
フォルダ内のPDFファイルを生成します。私が必要とするのは、世代の直後にファイルをダウンロードできることです。 send_data
が唯一のコントローラで動作することを、
send_data(filename: pdf, type: 'public/pdf')
しかし、それはそうです:私はgenerate_pdf
方法のpdf
ブロックの終了後にこの権利を追加し、ファイルをダウンロードしようとしました。では、モデルから何とかダウンロードする方法はありますか?先にありがとう。