我正在使用Enki博客宝石作为一种内容管理系统。它允许您创建帖子和页面。它会自动生成两个页面(Home和Archives)。我还创建了另外两个示例页面,服务和产品,并将创建更多。因此,当我想列出主页上的所有页面时,我这样做
<% 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 -%>
Archives的网址是localhost:3000 / archives
答案 0 :(得分:8)
另一种方式
<% page_links_for_navigation.each do |link| -%>
<% next if link.name == 'Archives' %>
<li><%= link_to(link.name, link.url) %></li>
<% end -%>
答案 1 :(得分: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
或只添加您要添加的页面并删除!
读