erb显示的类不正确

时间:2014-08-16 04:18:21

标签: html ruby-on-rails erb

我有以下代码:

<% event_class = "eventInfo individual")%>
<div class=<%= raw event_class %>>

在这种情况下,我希望渲染的html

<div class="eventInfo individual">

但我正在

<div class="eventInfo" individual="">

我该如何解决这个问题?

编辑:我通过写作得到了我想要的HTML:

<%= content_tag(:div, nil, class: event_class) %>

我仍会留下这个问题,以防万一有人想解决原来的问题。这看起来像Rails中的一个错误。

1 个答案:

答案 0 :(得分:1)

这不是一个错误,而是预期的行为,因为你没有将erb标记放在引号中。 &lt; %%&gt;中的所有内容标签将是ruby解释的服务器端,所以你在html中最终得到的是

<div class=eventInfo individual></div>

这将是错误的HTML,但现代浏览器有很大的容忍度,并将其转换为

<div class="eventInfo" individual="">

只需在你的erb标签周围加上“”即可。

<div class="<%= raw_event_info %>"></div>
编辑:您的解决方案在各个方面都更好,因为您不会将erb与html混合使用。我只是想解释一下原来发生的事情;)