2012-12-20 33 views
0

我正在創建一個帶有文本和徽標圖像的登錄按鈕的幫助器。 如果我僅將內容作爲內容放入文本或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