質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

Q&A

解決済

2回答

1707閲覧

wicked_pdfのエラー「ActionController::UnknownFormat in UsersController#create_pdf」を解決したいです。

akikko

総合スコア32

Ruby on Rails 5

Ruby on Rails 5は、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

PDF

PDF(Portable Document Format)とはISOによって国際標準として制定されている電子ドキュメント用の拡張子です。

0グッド

0クリップ

投稿2020/05/18 08:19

前提・実現したいこと

gem wicked_pdfを使って、pdfを実装したいのですが、
以下のエラーが出てしまい、大変困っております。
実装に向けて、どなたか助けて頂けると大変ありがたいです。

発生している問題・エラーメッセージ

UsersController#create_pdf is missing a template for this request format and variant. request.formats: ["text/html"] request.variant: [] NOTE! For XHR/Ajax or API requests, this action would normally respond with 204 No Content: an empty white screen. Since you're loading it in a web browser, we assume that you expected to actually render a template, not nothing, so we're showing an error to be extra-clear. If you expect 204 No Content, carry on. That's what you'll get from an XHR or API request. Give it a shot.

該当のソースコード

def create_pdf respond_to do |format| format.html format.pdf do render pdf: "supporter_list", #pdfファイルの名前。これがないとエラーが出ます layout: 'pdf.html', #レイアウトファイルの指定。views/layoutsが読まれます。 template: 'users/pdf' #テンプレートファイルの指定。viewsフォルダが読み込まれます。 end end end

補足情報

1)layouts内に、pdf.html.erbを保存してあります。(詳細コード以下に記載します)
2) views/users/pdf.html.erb も保存してあります。(1行だけh1タグで記載)
3) assets/stylesheets/pdf.scss も保存してあります。(からっぽ)

以下のgemはインストール済みです。
gem 'wicked_pdf'
gem 'wkhtmltopdf-binary'

vies/layouts/pdf.html.erb <!DOCTYPE html> <html> <head> <meta charset='utf-8' /> <%= wicked_pdf_stylesheet_link_tag "pdf" -%> <%= wicked_pdf_javascript_include_tag "number_pages" %> </head> <body onload='number_pages'> <div id="header"> <%= wicked_pdf_image_tag "voice_logo.png", :size =>'100x29' %> </div> <div id="content"> <%= yield %> </div> </body> </html>

以上、どうぞよろしくお願いいたします

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

自己解決

wicked_pdfは、公式のreadme と、gitのissue から、

windowsの開発環境では使用できないことが判明しました。

皆さまお気を付けください。

投稿2020/05/26 09:23

akikko

総合スコア32

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

request.formats: ["text/html"]となっているように、このリンクをHTMLで表示するものと解釈してしまっています。

対策法はいくつか考えられます。

  • Controller側でrespond_to do |format|のブロックを外してrender pdf:を直接書く
  • このアクションを指すリンクに、format: :pdf(ヘルパーに書く場合)や.pdf(URLを直書きする場合)を追加して、PDFのリンクだと明示する

投稿2020/05/18 08:23

maisumakun

総合スコア145184

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

akikko

2020/05/18 13:01

大変ご丁寧にご回答ありがとうございます。 データベースの名簿一覧を、htmlに抽出させてからpdfに落としたいと考えておりますので、頂きました format: :pdf(ヘルパーに書く場合)や.pdf(URLを直書きする場合)を追加して、PDFのリンクだと明示する ことにて対応したいと思うのですが、リンクに、 pdf_user_path(format: :pdf) と、記載しても 以下のエラーが出てしまい、実装ができませんでした。私の力が至らず大変申し訳ありません。 ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー Missing template users/pdf with {:locale=>[:ja], :formats=>[:pdf], :variants=>[], :handlers=>[:raw, :erb, :html, :builder, :ruby, :coffee, :jbuilder]}. Searched in: * "C:/Users/awork/Documents/GitHub/samurai1/app/views" * "C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/devise-bootstrap-views-1.1.0/app/views" * "C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/devise-i18n-views-0.3.7/app/views" * "C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/devise-i18n-1.9.1/app/views" * "C:/Ruby27-x64/lib/ruby/gems/2.7.0/gems/devise-4.7.1/app/views" ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー もし、具体的な実装方法を教えて頂けると大変嬉しいです。 どうぞよろしくお願いいたします。
maisumakun

2020/05/18 13:17

PDF生成用のテンプレートのファイル名をusers/pdf.pdf.erbとしてみてはどうでしょうか?
akikko

2020/05/18 13:31

大変ありがとうございます! 1つ進ことができたように思われます。先ほどのエラーが消えまして、 RuntimeError in UsersController#create_pdf Location of wkhtmltopdf unknown というエラーに変化しました???? 度々申し訳ありません????
maisumakun

2020/05/18 13:41

エラーメッセージのとおりです。wkhtmltopdfのプログラムはインストールしましたか?
akikko

2020/05/18 13:44

ありがとうございます???? gem 'wicked_pdf' gem 'wkhtmltopdf-binary' gemはこの2つをインストール済みです????この他にもPCにもインストールが必要などがありますか?
maisumakun

2020/05/18 13:55

> gemはこの2つをインストール済みです 順番を逆にしてみたらどうなりますか?(wicked_pdfより先にwkhtmltopdf-binaryを読ませる)
akikko

2020/05/18 14:06

ありがとうございます。名前順で読み込まれるようですので、特に変化がありませんでした???? ただ、ネット上の記事を読みまして、initializerの記載を変えたところ、 RuntimeError in UsersController#create_pdf wkhtmltopdf is not executable となりましたので、結局のところ wkhtmltopdfが使えていないようです。。 すいません・・・????
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問