【问题标题】:Is there a way to add HTML inside a Rails partial argument?有没有办法在 Rails 部分参数中添加 HTML?
【发布时间】:2015-04-02 03:07:41
【问题描述】:

几天来,我一直试图找到一些关于在部分参数中嵌入 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>

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

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

【问题讨论】:

    标签: html ruby-on-rails erb partials


    【解决方案1】:

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

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

    但由于安全原因,我建议使用 sanitize 方法:

    <%= sanitize section[:header] %>
    

    可能有时您会想要配置 sanitize 方法。在这里您可以阅读如何执行此操作: http://api.rubyonrails.org/classes/ActionView/Helpers/SanitizeHelper.html

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

    【讨论】:

    • 太棒了。感谢您的快速回答和附加文档。我想我只是在寻找答案时没有找到正确的搜索词。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多