rails 2.1.7 content_for的问题

时间:2011-03-01 22:31:50

标签: ruby-on-rails string-formatting content-for

我有一个应用程序,我想使用“content_for”和左侧导航栏渲染菜单,然后其余部分是我的文档正文。但是,在我的左栏和菜单区域中,html标记正在转义。我看到一篇关于在收益率之前使用raw的帖子,但这没有帮助。

在真正的应用程序中花了很长时间尝试诊断它之后,我创建了一个非常简单的测试,并且能够用最少的代码来做同样的事情。这就是我所拥有的:

layouts.application.erb          

  <body>
     <section id="page">
        <header>
          <nav class="clear"><%= raw yield :navigation %></nav>
        </header>

       <%= yield %>

     </section>
  </body>
</html>

页/ index.html.erb

<% content_for :navigation do %>
  <ul><li><%= link_to 'New page', new_page_path %></li></ul>
<% end %>

<h1>Listing pages</h1>

<table>
  <tr>
    <th>Title</th>
    <th>Body</th>
  </tr>

<% @pages.each do |page| %>
  <tr>
    <td><%=h page.title %></td>
    <td><%=h page.body %></td>
    <td><%= link_to 'Show', page %></td>
    <td><%= link_to 'Edit', edit_page_path(page) %></td>
    <td><%= link_to 'Destroy', page, :confirm => 'Are you sure?', :method => :delete %></td>
  </tr>
<% end %>
</table>

当我在浏览器中点击页面时,导航部分没有正确转义(实际上链接是,但不是列表,这对菜单来说很重要:))

这是来自使用脚手架生成代码的全新rails项目,该代码仅被修改为将默认链接移动到导航部分(并添加该部分)。

1 个答案:

答案 0 :(得分:0)

当您放弃内容而不是显示内容时,会发生转义。尝试在raw中使用content_for

<% content_for raw :navigation do %>