我正在创建一个rails帮助程序,用于创建带有文本和徽标图像的登录按钮。 如果我只将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<img src="/assets/logo.png" /></a></div>
如何正确连接字符串和content_tag的结果?
答案 0 :(得分:4)
问题是由于在构建anchor_tag时进行了连接。您需要在字符串文字上调用html_safe
以避免转义:
anchor = content_tag :a, "enter by".html_safe + image_tag("logo.png"), :href => '#'