【问题标题】:rails 2.3.7 issues with content_forrails 2.3.7 的 content_for 问题
【发布时间】:2011-03-01 22:31:49
【问题描述】:

我有一个应用程序,我想在其中使用“content_for”以及左侧导航栏来呈现菜单,然后剩下的就是我的文档的正文。但是,在我的左侧栏和菜单区域中,html 标记正在被转义。我看到一篇关于在产量之前使用 raw 的帖子,但这没有帮助。

花了相当长的时间尝试在真实应用程序中对其进行诊断后,我创建了一个非常简单的测试,并且能够用最少的代码让它做同样的事情。这是我所拥有的:

layouts.application.erb

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

       <%= yield %>

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

pages/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 项目,它使用脚手架生成的代码进行了修改,只是为了将默认链接向上移动到导航部分(并添加该部分)。

【问题讨论】:

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


    【解决方案1】:

    转义是在您将内容放在一边时发生的,而不是在您显示它时发生的。尝试在content_for 中使用raw

    <% content_for raw :navigation do %>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-06
      • 2011-12-02
      • 1970-01-01
      • 2014-05-25
      • 1970-01-01
      • 2022-08-22
      • 2014-01-30
      • 1970-01-01
      相关资源
      最近更新 更多