所以我有一个存储预转义文本字符串的数据库表(不要问我为什么......我不知道),我需要将它作为 RAW 字符串放在页面上。所有的 rails 输出函数似乎都逃脱了输出。
ex
<%= @string %>
将在打印到屏幕之前转义字符串的特殊字符
因此,如果我有字符串&
,我最终会得到类似的东西&amp;
,并且屏幕的输出很简单&
所以我有一个存储预转义文本字符串的数据库表(不要问我为什么......我不知道),我需要将它作为 RAW 字符串放在页面上。所有的 rails 输出函数似乎都逃脱了输出。
ex
<%= @string %>
将在打印到屏幕之前转义字符串的特殊字符
因此,如果我有字符串&
,我最终会得到类似的东西&amp;
,并且屏幕的输出很简单&
我想你想要的raw
方法:
<%= raw @string %>
您也可以使用 html_safe。
html_safe 实际上将字符串“设置”为 HTML Safe(它比这要复杂一些,但基本上就是这样)。这样,您可以随意从帮助程序或模型返回 HTML 安全字符串。
h 只能在控制器或视图中使用,因为它来自助手。它将强制输出被转义。它并没有真正被弃用,但你很可能不再使用它:唯一的用途是“恢复”一个 html_safe 声明,非常不寻常。
在你的表达式前面加上 raw 实际上等同于在其上调用 html_safe,但是,就像 h 一样,是在帮助器上声明的,所以它只能在控制器和视图上使用。
这是关于 SafeBuffers(执行 html_safe 魔术的类)如何工作的一个很好的解释:http: //yehudakatz.com/2010/02/01/safebuffers-and-rails-3-0/