我正在尝试调整我的消息系统,以便能够使用它向用户发送报告。例如,用户可能会完成一项工作,然后他会收到一条私人消息作为报告。
问题是将报告存储到我的数据库中。报告不仅仅是文本。它可以包含以前存储在db中的链接,甚至是用户生成的数据。
我的想法是使用render_to_string将视图呈现给变量,然后将其作为新消息存储到数据库中。但是,用户生成的数据和链接是一个问题,因为它们不会被转义。理想情况下,不应该转义像WB这样的html标签,以及link_to。但是,如果有<%= user.username%>在报告的某个地方,这个应该被转义。
我有点绊倒了。你知道一种有效的方法吗?
答案 0 :(得分:1)
通常,您可以通过以下方式处理HTML模式中的任何内容:
<%= h(user.username) %>
这是所有视图都可以使用的简单“渲染安全HTML”辅助方法。纯文本不需要以相同的方式进行转义。