如何在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