4

我正在使用 Enki 博客 gem 作为一种内容管理系统。它允许您创建帖子和页面。它会自动生成两个页面(主页和档案)。我还创建了另外两个示例页面,服务和产品,并将创建更多。因此,当我想列出主页上的所有页面时,我这样做

  <% page_links_for_navigation.each do |link| -%>
    <li><%= link_to(link.name, link.url) %></li>
  <% end -%>


Home
Archives
Services
Products

我将来可能想创建更多页面,所以最好像这样循环所有页面,而不是硬编码每个页面的 url。

但是,如果我想排除其中一个页面(即档案),我将如何更改该代码。Enki 会自动生成该页面,并且没有给我删除它的选项。此外,我不想删除档案,因为我想在我发布博客文章链接的地方使用它。

所以,简而言之,我将如何从这段代码中排除一个特定页面

  <% page_links_for_navigation.each do |link| -%>
    <li><%= link_to(link.name, link.url) %></li>
  <% end -%>

档案的网址是 localhost:3000/archives

4

2 回答 2

11

另一种方式

<% page_links_for_navigation.each do |link| -%>
   <% next if link.name == 'Archives' %>
   <li><%= link_to(link.name, link.url) %></li>
<% end -%>
于 2012-07-11T06:51:34.377 回答
5
  <% page_links_for_navigation.each do |link| -%>
    <%  if link.name != 'Archives' %>    
      <li><%= link_to(link.name, link.url) %></li>
    <% end %>
  <% end -%>

或使用page_links_for_navigation.reject {|page| page.name == 'Archives'}.each

编辑:

添加更多页面!['Archives', 'Home'].include? link.name或只添加您想要包含和删除的页面!

http://www.humblelittlerubybook.com/

http://www.ruby-doc.org/docs/ProgrammingRuby/

于 2012-07-11T06:44:03.833 回答