gpt4 book ai didi

ruby-on-rails - Ruby on Rails content_for 会自动进行 HTML 转义吗?

转载 作者:行者123 更新时间:2023-12-04 01:16:42 25 4
gpt4 key购买 nike

使用 Rails 3.0.6,我发现在 View 中,如果我执行

content_for :food_name, "Macaroni & Cheese"

然后当我使用 content_for(:food_name) 取回它时,然后是 &将被制成 &已经。
如果我做 content_for(:food_name).html_safe 没关系, &还是做成 &已经。

但如果按照以下方式完成,则不会转义:
content_for :food_name, "Macaroni & Cheese".html_safe

在这种情况下, &不会更改为 &自动地。现在,因为有些地方
我实际上做了一个 #{h content_for(:food_name)}它将被转义两次(成为 & ),或
因为我在 <meta> 中有值描述,打电话会很奇怪h在某些值上而不是调用它
关于其他一些值
.

此外,一个大问题是, 如果它自动转义,如果我添加 " - come see us!" 呢?到最后,依靠 Rails 3 来逃避它,现在,&被转义两次 .

content_for文档:

http://api.rubyonrails.org/classes/ActionView/Helpers/CaptureHelper.html#method-i-content_for

我没有看到任何类似的描述。那么上面的描述是否正确
还是文档更正确——实际上没有自动 HTML 转义?

从上面网页的源代码来看, content_for电话 capture ,它做了一个 ERB::Util.html_escape ,
所以实际上有一个自动逃逸,但真的应该有,为什么? capture 是否也没有记录?做一个
自动逃生?

最佳答案

使用 <%= raw some_stuff %>当您不希望 Rails 转义这些字符时,请使用简单的调用。

你总是知道内容可以是这样的区域,如果转义可以修改,所以你可以简单地适应 raw在那些地方。

有关更多信息,请参阅 Yehuda katz 撰写的这篇非常棒的文章。
safebuffers-and-rails-3-0

关于ruby-on-rails - Ruby on Rails content_for 会自动进行 HTML 转义吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5811488/

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