0

RailsビューにYouTubeを埋め込もうとしています

私が持っているコントローラー

@embed_code = '<iframe width="480" height="270" src="https://www.youtube.com/embed/#{video_id}?frameborder="0"allowfullscreen"></iframe>'

効果的にエスケープしてhtmlを安全にし、次のように表示するビューにこれを書き込む方法を見つけることができません。<%= @embed_code.html_safe %>

誰かがアドバイスをくれるなら、私は輪になって歩き、この段階でよく混乱していることを感謝します。私が見る限り、問題を引き起こしているのはパラメータの周りの2番目の引用符です。

4

3 に答える 3

2

コントローラ:

@embed_code = %Q{<iframe.....#{video_id}..>...</iframe>}.html_safe
# or
@embed_code = ActiveSupport::SafeBuffer.new(%Q{<iframe.....#{video_id}..>...</iframe>})

意見:

<%= @embed_code %>
于 2012-12-29T20:59:04.183 に答える
0

使用する

<%= raw @embed_code %>

rawヘルパーは、Railsがビュー内のhtmlコードを自動的にエスケープするのを防ぎます。

于 2012-12-29T20:51:36.923 に答える
0

sanitize多分あなたが欲しいものだと思います

%= sanitize @article.body %>


def sanitize(html, options = {})
  self.class.white_list_sanitizer.sanitize(html, options).try(:html_safe)
end
于 2014-08-14T09:08:09.697 に答える