Ruby 1.8.7、Rails 3.0.4、PDFKit 0.5.0
ミドルウェアを使用せずにPDFKitを使用してPDFを作成しようとしているので、JavaScriptを無効にできます(PDFにあるはずの多くの情報を非表示にするアコーディオンアクションがあります)。ただし、試行すると、ビュー(show.html.erb)のパーシャルが欠落していると表示されるため、失敗します。
{:locale => [:en、:en]、:formats => [:pdf]、:handlers => [:erb、:rjs、:builder、:rhtml、:rxml]}で部分的なプログラム/詳細が欠落しています
パーシャルへの参照を削除すると、正常に機能します。また、show.html.erbと同じディレクトリにパーシャルを配置しようとしましたが無駄になりました。これが私のコントローラーのshowactionのコードです:
respond_to do |format|
format.html # show.html.erb
format.pdf {
html = render_to_string(:template => "show.html.erb")
kit = PDFKit.new(html, :disable_javascript => true )
send_data(kit.to_pdf, :filename => "test_pdf", :type => "application/pdf", :disposition => 'attachment')
}
end
これを行い、パーシャルを保持する方法はありますか?
編集:今のところ私はこれをしました:
# config/initializers/pdfkit.rb
PDFKit.configure do |config|
config.default_options = {
:page_size => 'Legal',
:print_media_type => true,
:disable_javascript => true
}
end
これには、生成するすべてのPDFでJavaScriptをオフにするという欠点がありますが、今のところは有効です。パーシャルをrender_to_stringで引き続き機能させるという元の質問に対する回答は、引き続き高く評価されます。