"<%= h [...]%>"中"h"的含义是什么?

nee*_*zer 63 ruby templates ruby-on-rails

当我生成默认支架时,show.html.erb上的显示标签有

<%=h @broker.name %>
Run Code Online (Sandbox Code Playgroud)

我知道之间的区别<%<%=.什么是"h"呢?

Jas*_*rue 94

html逃脱.这是一种将<和>之类的东西转换为数字字符引用的方法,这样渲染就不会破坏你的html.

  • 在Rails 3中,这是自动完成的,因此不需要. (12认同)

小智 15

<%=h实际上发生了两件事.你打开一个erb标签(<%=)并调用Rails方法h来转义所有符号.

这两个电话是等价的:

<%=h person.first_name %>
<%= h(person.first_name) %>
Run Code Online (Sandbox Code Playgroud)

h方法通常用于从用户输入表单中转义HTML和Javascript.


Tim*_*ing 14

h为方法别名html_escapeERB ::的Util类.


hey*_*ten 6

Rack::Utils.escape_html如果您在Metal中并且想要转义某些HTML ,Rack中还有一种方法可以转义HTML.