如何正确连接字符串和标签结果



我正在制作一个rails帮助器,用于创建一个带有文本和徽标图像的登录按钮。如果我只把文本或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>

但是当我尝试传递连接结果时,它会返回一个带有转义符号的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的结果?

问题是由于在构建anchor_tag时进行了连接。您需要对字符串字面值调用html_safe以避免转义:

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

相关内容

  • 没有找到相关文章

最新更新