gpt4 book ai didi

html - 如何在 Rails ERB View 中转义 block 中的所有 HTML

转载 作者:行者123 更新时间:2023-12-01 22:40:06 24 4
gpt4 key购买 nike

本质上我想要如下内容:

<code class="snippet">
<%= html_escape do %>
<a href="#">My markup displayed to user</a>
<% end %>
</code>

但是 html_escape 方法不接受 block 。如果这不是在其他地方内置到 Rails API 中,也许使用一些帮助程序,是否有人建议如何制作自定义帮助程序,其中 yield 语句输出被捕获到一个字符串中,然后我可以自己转义?

谢谢,

基思

最佳答案

Rails 的 captureescape_once 辅助方法可以从 erb 模板中的 block 创建一个 String 并且然后输出它的转义版本:

<% snippet = capture do %>
<a href="#">My markup displayed to user</a>
<% end %>
<code><%= escape_once snippet %></code>

content_for 是另一个 helper,提供与 capture 类似的功能,您可以根据情况考虑使用。

解释一下,snippet 是一个 ActiveSupport::SafeBuffer,这就是为什么需要 escape_once。您可以通过调用 snippet.to_str 而不是 escape_once snippet 来实现相同的目的(但是 .to_s 将不起作用,因为它与 不同ActiveSupport::SafeBuffer 中的 .to_str

关于html - 如何在 Rails ERB View 中转义 block 中的所有 HTML,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16068651/

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