2012-01-27 6 views
0

죄송합니다.이 말은 분명한 것처럼 들리지만 혼란 스러울 것입니다. 탐색 목록 도우미를 작성하려고합니다.rails content_tag nav builder helper

현재 배열로부터 링크 목록을 수신합니다.

module ApplicationHelper 
    def site_pages 
    %w{index about contact promotions} 
    end 

    def nav_builder list  
    list.map do |l| 
     content_tag :li do 
     content_tag :a, :href => "#{l}_path" do 
      l 
     end 
     end 
    end 
    end 
end 

하지만 페이지를 실행하면 모든 페이지가 배열로 인쇄됩니다.

[<li><a href="index_path">index</a></li> <li><a href="about_path">about</a></li> <li><a href="contact_path">contact</a></li> <li><a href="promotions_path">promotions</a></li>] 

링크 목록을 표시하는 대신. 할 특별한 것이 있습니까?

== 편집 ==

내 빌더 이런 식으로 전화를

: 도우미가 아니라 배열보다, HTML의 문자열을 반환 할 것으로 예상된다

<%= nav_builder site_pages %> 

답변

2

. 배열 요소를 단일 문자열로 결합 해보십시오.

def nav_builder list  
    list.map do |l| 
    content_tag :li do 
     content_tag :a, :href => "#" do 
     "test" 
     end 
    end 
    end.join("\n").html_safe 
end 
+0

이렇게하면 모든 것을 화면에 문자열로 인쇄합니다. html로 번역하지 않습니다.

    "
  • ...
  • "

+0

HTML을 피하려면'join ("\ n") .html_safe'로 바꾸어야합니다. – Jef

+0

Magic! <% = h nav_builder site_pages %>를 시도했지만 작동하지 않았습니다. 결과는

관련 문제