2012-12-20 3 views
0

나는 텍스트와 로고 이미지가있는 로그인 버튼을 만들기위한 레일 헬퍼를 만들고있다. 콘텐츠로 text 또는 image_tag 결과 만 입력하면 매우 효과적입니다.문자열과 태그 결과를 올바르게 연결하는 방법은 무엇입니까?

def test_helper 
    anchor = content_tag :a, "enter by", :href => '#' 
    concat content_tag :div, anchor, :class => 'login' 
end 

# result: 
# <div class="login"><a href="#">enter by</a></div> 

def test_helper 
    anchor = content_tag :a, image_tag("logo.png"), :href => '#' 
    concat content_tag :div, anchor, :class => 'login' 
end 

# result: 
# <div class="login"><a href="#"><img src="assets/logo.png" /></a></div> 

그러나 나는 HTML 소스에서 탈출 기호로 img 태그 반환되는 연결의 결과를 전달하려고하면

def test_helper 
    anchor = content_tag :a, "enter by" + image_tag("logo.png"), :href => '#' 
    concat content_tag :div, anchor, :class => 'login' 
end 

<div class="login"><a href="#">enter by&lt;img src=&quot;/assets/logo.png&quot; /&gt;</a></div> 

어떻게 제대로 문자열과 content_tag의 결과를 연결할 수 있습니까?

답변

4

문제는 anchor_tag를 빌드 할 때 연결이 수행 되었기 때문입니다. 이스케이프를 피하기 위해 문자열 리터럴에 html_safe을 호출해야합니다.

anchor = content_tag :a, "enter by".html_safe + image_tag("logo.png"), :href => '#' 
+0

오, 죄송합니다. 복사 붙여 넣기를 할 때 대괄호를 잃습니다. –

+0

anchor.html_safe를 사용하면 동일한 결과가 나타납니다 ( –

+0

맞아요, 문제가 아닙니다 - 새로운 솔루션으로 업데이트 됨) – PinnyM

관련 문제