2012-07-11 3 views
3

나는 콘텐츠 관리 시스템의 유형으로 Enki 블로깅 보석을 사용하고 있습니다. 그것은 당신이 게시물과 페이지를 만들 수 있습니다. 자동으로 두 페이지 (홈 및 자료실)를 생성합니다. 또한 두 개의 다른 예제 페이지 인 서비스 및 제품을 만들었으며 많은 것을 만들 것입니다. 나는 홈 페이지에있는 모든 페이지를 나열 할 때 따라서, 나는 어떻게이레일 : "각"방법에서 하나의 항목을 제외하는 방법

<% 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 -%> 

아카이브의 URL은 localhost입니다 : 3000/아카이브

답변

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/

+0

감사를 읽을 제거 않는 페이지, 이러한 작업을 추가 ,하지만 두 번째 페이지를 제외하려고하면 문제가 발생합니다. 예를 들어, '홈'(아카이브는 물론). 예를 들어, <% if link.name! = 'Archives'|| '홈'%> 또는 거부 할 경우, | | 페이지 | page.name == '자료실', '집'} 아이디어가 있습니까? – Leahcim

+0

+1에 대한'page_links_for_navigation.reject {| page | page.name == '자료실'}. 각' –

8

또 다른 방법

<% page_links_for_navigation.each do |link| -%> 
    <% next if link.name == 'Archives' %> 
    <li><%= link_to(link.name, link.url) %></li> 
<% end -%> 
+0

대단히 감사합니다. – Leahcim

관련 문제