2012-09-06 4 views
1

나는 현재 그들이 루트 경로에없는 경우 탐색 모음에서 홈 링크를 보여 레일 : 조건부 홈 링크

<li><%= link_to_unless_current("Home", root_path) %></li> 

을 사용하고 있습니다. 이 루트 경로에있는 일 때 텍스트 "홈"(링크가 아니라 텍스트가 아님) 뒤에 남겨 둡니다.

나는 이것을 할 수있는 더 좋은 방법이 있다고 확신한다.

답변

6
link_to("Home", root_path) unless current_page?(root_url) 
1

당신은 "홈"을 생략하는이 작업을 수행 할 수 있습니다

<%= link_to_unless_current("Home", root_path) { "" } %> 

API 보여줍니다 그냥 이름을 반환하는 것보다 다른 일을 수행하려는 경우, 당신은 블록에 전달하고 당신이 원하는 것을 할 수있는, 이 경우 빈 문자열을 반환합니다. 이렇게

+0

팁을 주셔서 감사합니다. – sameera207

0

link_to_unless_current 작품 : 조건이 참

  1. 경우, 그것은없이 (조건이 참이 아닌 경우, 그냥 텍스트를 넣어 것입니다 장소
  2. 에있는 링크를 넣어 것입니다 링크). 일반적으로 자주 어떻게 든 그것을 강조 할 것이다 - 당신은 여전히 ​​"현재"옵션을 표시 할 위치

이 기능은 일반적으로 해당 페이지의 경우에도, 메뉴에 사용됩니다. 당신이 전혀 표시되지 링크를 원하는 경우

, 다만 "정상"링크에 대한 작업을 수행하고 전체 LINK_TO 방법 - 통화하지 않는 한 사용할 수 있습니다. 예를 들어, 벤자민 탄의 예 :

link_to("Home", root_path) unless current_page?(root_path) 
0

나는 그것이 사용자에게 혼란을하기 때문에, link_to_unless, 또는 link_to_if를 사용하지하는 것이 좋습니다 가정합니다. 스타일이나 배경을 변경하고 링크를 클릭하면 쉽게 페이지를 다시로드 할 수 있습니다.