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

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

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

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

PDF

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

Q&A

解決済

1回答

847閲覧

【ruby on rails】スマホでpdfを表示できない

shirai

総合スコア1290

Ruby on Rails 5

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

PDF

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

0グッド

1クリップ

投稿2020/09/03 03:56

大雑把な質問になりますが、思い当たることを挙げていただければと思います。

概要

ECシステムで領収書のpdfを作成しています。
おおよそ以下のようなイメージです。
領収書ボタンをクリックするとreceiptメソッドが発火します。


コントローラ

ruby

1def receipt 2 send_data ReceiptPdf.new(order).render, 3 filename: 'receipt.pdf', 4 type: 'application/pdf', 5 disposition: 'inline' 6end

app/pdfs/receipt_pdf.rb

ruby

1class ReceiptPdf < Prawn::Document 2 def initialize(order) 3 ... 4 end 5end

問題点

PCでは要件通りに、領収書ボタンをクリックすると、pdfがブラウザ上で表示されます。
新しいタブが開くのではなく、同じタブで開かれます。これは仕様通りです。
しかしデベロッパーツールでスマホモードに切り替えると、pdfは表示されず、ダウンロードもされず、
bodyタグの最下部にformタグが追加されるというよくわからない現象に遭遇しています。

この謎formタグのaction属性のURLは、PCで正常にpdfが表示された時のURLと同じでした。
railsは全く同じ成功ログを出力しているのでクライアントサイド(JS)に原因があるのではないかとなんとなく考えています。

また以下の手順を実施するとブラウザのタブのグルグル更新マークが止まらなくなります。

  1. PC表示にして領収書ボタンをクリック
  2. 領収書画面でスマホ表示に変更
  3. ブラウザの「戻る」を実行
  4. ブラウザの「進む」を実行

何か思いつくことがある方いらっしゃらないでしょうか。

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

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

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

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

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

guest

回答1

0

自己解決

実機を接続したら動きました。
safariは問題なく表示できましたが、
chromeはDLをする形になりました。
原因不明ですがとりあえずできたのでクローズします。

投稿2020/09/03 08:26

shirai

総合スコア1290

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問