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

时间:2015-02-03 01:57:48

标签: html ruby-on-rails erb partials

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

1 个答案:

答案 0 :(得分:1)

您将文字标记为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