我有以下代码:
<% 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中的一个错误。
答案 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混合使用。我只是想解释一下原来发生的事情;)