実現したいこと
Google ドライブ上に保存した Google スライド(.pptx形式を含む)を
オリジナルのRailsアプリ上でスライドショーとして表示したいです。(SlideShareのようなイメージ)
発生しているエラー
読み込みページ(showビュー)にアクセスすると、下記のようなエラーとなってしまいます。
実装状況
スライドは Presentationモデルの new ページにあるフォームから
リンクを文字列形式で入力させて登録します。
- presentation/new.html.erb
erb
1<div> 2 <%= form_with model: @presentation, :url => {:action => :create} do |f| %> 3 <div> 4 <%= f.label "プレゼンテーション名" %> 5 <%= f.text_field :presentation_name, class: "form-text" %> 6 </div> 7 <div> 8 <%= f.label "概要(任意)" %> 9 <%= f.text_area :description, class: "form-text" %> 10 </div> 11 <div> 12 <%= f.label "リンク" %> 13 <%= f.url_field :link_url, class: "form-text" %> 14 </div> 15 <%= f.submit "Create", class: "btn btn-primary" %> 16 <% end %> 17</div>
- presentation/show.html.erb
erb
1<h1 class="presentation_title"><%= @presentation.presentation_name %></h1> 2 3<p><%= @presentation.description %></p> 4 5<div> 6 <iframe src="<%= @presentation.link_url %>" frameborder="0" width="640" height="389" allowfullscreen="true" mozallowfullscreen="true" webkitallowfullscreen="true"></iframe> 7</div> 8<%= link_to 'Edit', edit_presentation_path(@presentation.id) %>
show.html.erb の iframe
タグ中の src=
に指定するURLは、
以下のスクリーンショットで取得したURLを使用する想定です。
また、Railsでiframeからのリクエストを許可するHeadersをafter_actionで設定する
を参考にさせていただき、applicationControllerの中は次のように修正ずみです。
ruby
1class ApplicationController < ActionController::Base 2 after_action :allow_foo_iframe 3 4 FOO_URL = "https://docs.google.com/" 5 6 private 7 8 def allow_foo_iframe 9 response.headers['X-Frame-Options'] = "ALLOW-FROM #{FOO_URL}" 10 response.headers['Content-Security-Policy'] = "frame-ancestors #{FOO_URL}" 11 end 12end
スライドが表示できるようになればありがたいです。
ご助力いただけますでしょうか。
よろしくお願い致します。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。