2011-06-25 17 views
0

的怪异渲染所以我有这个文件:.html.erb文件

<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

那么在* @messages和@events中*是什么? (也就是'raw(e.content)'自己输出什么东西? – slhck

+0

由admin/me输入的HTML内容,所以@events中唯一的东西就是html。而e.content在这种情况下输出一个很小的表格,和消息输出这是另一个消息测试 – Msencenb

+0

'raw'肯定是要走的路,但我的猜测是,HTML是一个不完整的地方,当在模板引擎中混合使用时,会造成相当混乱。你的问题中的'e.content'的内容让我们看到 – slhck

回答

0

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

因此,如果m.contente.content格式不正确,您很可能会收到意想不到的输出。

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

相关问题