什么<%= h ...%>在Rails中意味着什么?

时间:2010-12-15 10:21:16

标签: ruby-on-rails erb ruby-on-rails-3

我发现here语法如下:

<%=h @person.first_name %>

h的含义是什么?

2 个答案:

答案 0 :(得分:11)

用于转义标记的输出以避免跨站点脚本。在rails 3中,它被更改为字符串的默认值(因此,不是说转义此字符串,你说,这是一个安全的字符串)。

http://api.rubyonrails.org/classes/ERB/Util.html#method-c-h

答案 1 :(得分:4)

h是Rails中html_escape方法的别名。

如果你没有使用h转义文本,那么有人可以在那里编写javascript,它会在你呈现页面时执行。

因此,如果您不确定所显示的数据是绝对安全的,请通过转义HTML标记字符的过滤器运行它。