これはおそらく設計または使用上の質問ですが、主な問題はRails 2.3.4でPrawnプラグインを使用し、結果のPDFオブジェクトにアクセスしてファイルにレンダリングすることです。
シナリオは基本的にです。
- response_toブロックが設定されたコントローラー
- テキスト、グラフィックスなどをPDFにレンダリングするためのコードを含むビュー
次のようになります:
カスタマーコントローラーから
def show
@customer = Customer.find(params[:id])
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @customer }
format.pdf { render :layout => false }
end
カスタマービューから
pdf.text "Hello World"
pdf.text "Customer is #{@customer.name}"
これは正常に機能し、PDFファイルが生成されると予想されるように、/ customers/1.pdfに応答してPDFファイルを生成します。
他の要件の1つは、PDFをファイルにレンダリングし、サーバーにコピーを保存することです。エビは方法を提供します:
pdf.render_file {path_tofile}
したがって、これをビューコードに含めると、もちろんファイルをサーバーに保存できます。ただし、これはビュー自体ではなくロジックに関連しているため、コントローラーで管理したいと思います。
最初の試みは:
def show
@customer = Customer.find(params[:id])
@pdf = Prawn::Document.new()
respond_to do |format|
format.html # show.html.erb
format.xml { render :xml => @customer }
format.pdf { render :layout => false }
pdf.render_file {path_to_file}
end
カスタマービューから
pdf.text "Hello World"
pdf.text "Customer is #{@customer.name}"
問題
この試みの問題は、PDFがレンダリングされないことです。Controllerインスタンス変数がPrawntoPlugin変数と衝突しているのではないかと思いましたpdf
。しかし、PDF変数を変更しても機能しませんでした。助言がありますか ?