2016-09-11 28 views
0

PDFファイルを生成したいので、PDFKitを使用しようとしていますが失敗しています。Rails4:PDFKitでテンプレートにエラーがありません

リンクをクリックすると、次のエラーが表示されました。

ActionView::MissingTemplate (Missing template /show with {:locale=>[:en], :formats=>[:pdf], :variants=>[], :handlers=>[:erb, :builder, :raw, :ruby, :coffee, :jbuilder]}. Searched in: 
    * "/usr/local/rvm/gems/ruby-2.3.0/gems/web-console-2.0.0.beta3/lib/action_dispatch/templates" 
    * "/home/ubuntu/workspace/app/views" 
    * "/usr/local/rvm/gems/ruby-2.3.0/gems/web-console-2.0.0.beta3/app/views" 

スケジュール\ show.html.erb

<% provide(:title, @schedule.title) %> 
<%= render @schedules %> 

スケジュール\ _schedule.html.erb

... 
    <%= link_to "PDF", schedule_path(schedule.id, format: "pdf"), class: "btn btn-sm btn-default" %> 
... 

schedules_controller.rb

... 
respond_to do |format| 
    format.html # show.html.erb 
    format.pdf do 
    html = render_to_string template: "show" 

    pdf = PDFKit.new(html, encoding: "UTF-8") 

    send_data pdf.to_pdf, 
     filename: "#{@scheudles.id}.pdf", 
     type:  "application/pdf", 
     disposition: "inline" 
    end 
end 
... 

show.pdf.erb_schedule.pdf.erbの内容はhtml.erbと同じですが、結果は同じです。

答えて

1

を使用している理由は、template: "show"を使用しているコントローラから、showファイルを見つけるために、viewsフォルダ内のどこにレールがあるかを特定するのに十分ではないからです。

show../app/viewsを検索したところ、このエラーの証拠が表示されます。テンプレートの親フォルダとテンプレート名を一緒に使用する必要があります。この

format.pdf do 
    html = render_to_string template: "schedules/show.html.erb" 
    ... 
end 
+0

変更この

format.pdf do html = render_to_string template: "show" ... end 

、あなたの答えのための@MilesStanfieldをいただきありがとうございます。 'schedules/show.html.erb'に変更しましたが、以下のエラーが出ます。 RuntimeError(コマンドは失敗しました(exitstatus = 0):/usr/local/rvm/gems/ruby-2.3.0/bin/wkhtmltopdf --encoding UTF-8 --page-size A4 --margin-top 0.25in - margin-right 1in - margin-bottom 0.25in - margin-left 1in - - ): ' – SamuraiBlue

+0

あなたの一歩近づいて:)私はあなたの過去のエラーを過去に助けupvoteを感謝します。がんばろう! – MilesStanfield

+0

@ MilesStanfieldのコメントと回答ありがとうございます。私の問題はあなたが言及した別の原因かもしれません。別の投稿(http://stackoverflow.com/questions/39471547/rails-how-to-display-font-awesome-icons-on-pdf)を確認することができれば幸いです。 – SamuraiBlue

0

だけ変更:アクション=> "show.html.erb"

のhtml = render_to_string(:レイアウト=> falseを、:アクション=> "show.pdf.erb")

希望を、このことができます君は。

関連する問題