有没有办法在 Rails 部分参数中添加 HTML?

Is there a way to add HTML inside a Rails partial argument?

几天来我一直在尝试寻找有关将 HTML 代码嵌入部分参数的内容,但我没有找到任何内容,所以我猜这是不可能的。但似乎应该如此。

我的 Rails 应用程序中有一个静态页面,其中有很多部分,每个部分都可以有小节。我可以让整个页面变得简单 HTML。但我不想一遍又一遍地重复相同的格式,以防我想更改 类 或其他内容。

所以我有以下 _section.html.erb 部分文件:

<div class="row">
    <h4><%= heading %></h4>
    <% subsections.each do |section| %>
        <% if section[:header] %>
            <h5 class="primary-text"><%= section[:header] %></h5>
        <% end %>
        <p><%= section[:body] %>
    <% end %>
</div>

效果很好。但是,如果我想在某个小节中的页面或电子邮件中包含 link 怎么办?仅将其作为引号文本的一部分传递是行不通的。它显示了实际的 HTML 个标签。

有没有真正的方法可以做到这一点,还是我应该放弃,只写简单的 HTML 和重复的部分格式?

您将文本标记为 html_safe。例如:

<%= section[:header].html_safe %> 

但出于安全原因,我建议使用清理方法:

<%= sanitize section[:header] %>

可能有时您会想要配置清理方法。在这里你可以阅读如何做到这一点: http://api.rubyonrails.org/classes/ActionView/Helpers/SanitizeHelper.html

您可以在此处阅读有关安全性的更多信息: http://guides.rubyonrails.org/security.html#cross-site-scripting-xss