2012-12-20 31 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