如何使内部修身HTML模板(How to render HTML inside Slim templ

2019-07-29 20:32发布

我试图通过呈现一个图标前面的链接。 我使用的超薄模板引擎沿着引导CSS 。

通常你可以做到这一点的方式如下:

<a href="#"><i class="icon-user"></i> My Profile</a>

据修身的文档,我们可以用==来呈现,而不逃避HTML。 所以,要将这种修身,我尝试以下变化:

li== link_to "<i class='icon-user'></i> My Profile", current_user
li== link_to "#{'<i class="icon-user"></i>'.html_safe} My Profile", current_user
li= link_to "#{'<i class="icon-user"></i>'.html_safe} My Profile", current_user

所有变化呈现<a href="/users/1"><i class="icon-user"></i> My Profile</a>逸出i标签。

我怎样才能阻止逃逸HTML修身或者Rails?

(Rails的3.2超薄1.2.1)

Answer 1:

要禁用HTML转义为link_to参数,而不是整个link_to结果。 你很亲近你html_safe但您的字符串插值是吃你的“安全的HTML”标志。 这应该更好地工作:

li= link_to '<i class="icon-user"></i> My Profile'.html_safe, current_user


Answer 2:

这已经回答了,但如果你真的有一些HTML和要使其纤薄模板,使用双相等。

== "<i>test</i>"

将同

= "<i>test</i>".html_safe


Answer 3:

或者,你可以这样写

li
  a href=url_for(current_user)
    i.icon-user My Profile

这可以说是一个小更易于阅读。



Answer 4:

有一个在下面的情况下解决这个另一种方式它可以帮助任何人。 使用块,如果你有更复杂的代码的链接中包括特别有用。

li
  = link_to current_user do
    i.icon-user>
    | My Profile


文章来源: How to render HTML inside Slim templates