8

.erb ファイルに次のコードがあります。

<% embed='<a href="http://someurl.com/whatever">#{@webcast.name}</a>'%>

<p id="embedCode">
    <pre>
        <code>
            <%= embed %>
        </code>
    </pre>
</p>

アンカー タグは、dom 要素としてレンダリングされるのではなく、テキストとして画面上に正しく表示されますが、文字列の補間は失敗します。HTML はテキストとして正常に表示されますが、#{@webcast.name} は評価されません。テンプレートに <%= @webcast.name => を含めると、Web キャスト名が正常にレンダリングされます。

4

1 に答える 1

15

単一引用符で区切られた文字列''は補間されないためです。

コードを次のように変更します。

<% embed = "<a href=\"http://someurl.com/whatever\">#{@webcast.name}</a>" %>

または(二重引用符文字のマスキングを避けたい場合"

<% embed = %(<a href="http://someurl.com/whatever">#{@webcast.name}</a>) %>

または単に(ヒントを提供してくれたSamy Dindaneに感謝します):

<% embed = "<a href='http://someurl.com/whatever'>#{@webcast.name}</a>" %>
于 2012-05-18T09:37:35.727 に答える