2012-06-03 3 views
0

Rails 앱에서 html 스 니펫을 렌더링하는 도우미 메소드가 있습니다. 트위터 부트 스트랩 글꼴link_to 앵커에 html + string을 렌더링하는 방법은 무엇입니까?

def edit_icon 
    content_tag(:i, "", :class=>'icon-edit') 
end 

추가 텍스트가 추가 된 링크 앵커에 표시하고 싶습니다. 예 :

<%= link_to "#{edit_icon} Edit this Record", edit_record_path(@record) %> 

이것은 현재 content_tag를 HTML이 아닌 문자열로 렌더링합니다. 어떻게 HTML로 렌더링합니까?

나는 <%= link_to "#{raw edit_icon}<%= link_to "#{edit_icon.html_safe}으로 실험했지만,이 경우에는 필요하지 않은 것 같습니다.

어떤 아이디어 주셔서 감사합니다.

답변

5

레일 문자열 보간은 content_tag의 HTML 출력을 "안전한"형식으로 변환합니다. 둘 다 시도한 픽스는 문자열 보간이 적용되기 전에 작동합니다. 작동하지 않습니다.

문제를 해결하려면 문자열 바깥 쪽에서 메서드 호출을 이동해야합니다.

Do this: 
    <%= link_to edit_icon + "Edit this Record", edit_record_path(@record) %> 
Instead of: 
    <%= link_to "#{edit_icon} Edit this Record", edit_record_path(@record) %> 
+0

완벽! 이것을 설명하는 좋은 정보 출처를 제안 할 수 있습니까? 또는, 다른 말로하면, 내가 이것을 알아 내야 할 곳은 어디인가? 다시 한번 감사합니다! –

+0

다음은 꽤 좋은 설명입니다. http://yehudakatz.com/2010/02/01/safebuffers-and-rails-3-0/ 1 년 전 Obie Fernandez의 The Rails 3 Way를 읽음으로써 이것을 배웠다고 생각합니다. . –

관련 문제