content_tag :tr block 简单英文

content_tag :tr block in simple English

我是 Rails 的初学者,我在某处看到了这段代码,想知道这段代码与定义为 7 天数组的 HEADER 变量究竟做了什么。

def header
  content_tag :tr do
    HEADER.map { |day| content_tag :th, day }.join.html_safe
  end
end

此方法能够像这样创建 HTML :

<tr>
  <th> first day </th>
  <th> second day </th>
  .....................
  <th> Seventh day </th>
</tr>

解释:

map 方法接受一个可枚举对象和一个块,并为每个元素运行块,从块输出每个返回值。

[1, 2, 3].map { |n| n * n } #=> [1, 4, 9]

Join 方法用于将输出数组转换为字符串,html_safe 用于在网页上正确呈现 HTML。