.html.erb文件的奇怪渲染

时间:2011-06-25 20:26:49

标签: ruby-on-rails-3 layout

所以我有这个文件:

<h1>Calendar view</h1>

<div class="events">
    <% @events.each do |e| %>
        <%= raw(e.content)%>
    <% end %>
</div>


<br />
<div class="messages">
    <% @messages.each do |m| %>
        <%= raw(m.content)%>
    <% end %>
</div>

@events和@messages是控制器中的有效实例变量...但是当我转到页面时,html看起来像这样:

<h1>Calendar view</h1>

<div class="events">
    <br>
      <div class="messages">
        This is another message test
      </div
    Event Content

</div>

我很困惑。也许我错过了一些明显的东西?

1 个答案:

答案 0 :(得分:0)

问题是raw()将输出原始HTML内容。 Rails模板引擎将尝试将其与您提供的.erb模板合并。

因此,如果m.contente.content格式错误,您很可能会得到意外的输出。

最好的方法是查找语法错误,尤其是缺少关闭元素。