为什么字符串插值在erb模板中失败?

时间:2012-05-18 09:35:58

标签: html ruby-on-rails ruby erb string-interpolation

我在.erb文件中有以下代码:

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

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

锚标记在屏幕上正确显示为文本而不是呈现为dom元素,但字符串插值失败。 html已成功显示为文本,但未评估#{@webcast.name}。如果包含&lt;%= @ webcast.name =&gt;在模板中,网络广播名称成功呈现。

1 个答案:

答案 0 :(得分:13)

因为没有插入用单引号''分隔的字符串。

将您的代码更改为例如:

<% 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>" %>