如何在Slim模板中呈现HTML

我正在尝试渲染一个前面带有图标的链接。 我正在使用Slim模板引擎和Bootstrap CSS 。

通常您可以通过以下方式执行此操作:

 My Profile 

根据Slim的文档,我们可以使用==进行渲染而不必转义HTML。 因此,将其翻译为Slim,我尝试了以下变体:

 li== link_to " My Profile", current_user li== link_to "#{''.html_safe} My Profile", current_user li= link_to "#{''.html_safe} My Profile", current_user 

My Profile呈现的所有变体 My Profile转义i标记。

如何阻止Slim或Rails逃避html?

(Rails 3.2 with Slim 1.2.1)

您想要为link_to参数禁用HTML转义,而不是整个link_to结果。 你的html_safe非常接近,但你的字符串插值正在吃掉你的“安全的HTML”标志。 这应该更好:

 li= link_to ' My Profile'.html_safe, current_user 

或者,您可以将其写为

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

这可能有点容易阅读。

这已经得到了解答,但是如果你真的有一些html并且想要在一个纤薄的模板中渲染它,请使用double equal。

 == "test" 

将是一样的

 = "test".html_safe 

如果它可以帮助任何人,还有另一种解决方法。 如果要在链接中包含更复杂的代码,则使用块特别有用。

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