gpt4 book ai didi

ruby-on-rails - raw vs. html_safe vs. h 来取消转义 html

转载 作者:行者123 更新时间:2023-12-03 04:00:14 30 4
gpt4 key购买 nike

假设我有以下字符串

@x = "<a href='#'>Turn me into a link</a>"

在我看来,我希望显示一个链接。也就是说,我不希望 @x 中的所有内容都未转义并显示为字符串。使用有什么区别

<%= raw @x %>
<%= h @x %>
<%= @x.html_safe %>

最佳答案

考虑 Rails 3:

html_safe 实际上将字符串“设置”为 HTML Safe(比这稍微复杂一点,但基本上就是这样)。这样,您就可以随意从助手或模型返回 HTML 安全字符串。

h 只能在 Controller 或 View 中使用,因为它来自助手。它将强制输出被转义。它并没有真正被弃用,但您很可能不会再使用它:唯一的用法是“恢复”html_safe 声明,非常不寻常。

在表达式前面添加 raw 实际上相当于调用 to_s 并用 html_safe 链接,但它是在助手上声明的,就像h,因此只能在 Controller 和 View 上使用。

"SafeBuffers and Rails 3.0 "很好地解释了 SafeBuffer(实现 html_safe 魔法的类)的工作原理。

关于ruby-on-rails - raw vs. html_safe vs. h 来取消转义 html,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4251284/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com