我有一个应用程序,我想在其中使用“content_for”以及左侧导航栏来呈现菜单,然后剩下的就是我的文档的正文。但是,在我的左侧栏和菜单区域中,html 标记正在被转义。我看到一篇关于在产量之前使用 raw 的帖子,但这没有帮助。
在花了相当长的时间尝试在真实应用程序中诊断它之后,我创建了一个非常简单的测试,并且能够用最少的代码让它做同样的事情。这是我所拥有的:
布局.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 项目,它使用脚手架生成的代码进行了修改,仅将默认链接向上移动到导航部分(并添加了该部分)。