Matchu's answe r启发了我很多,我将其修改为自定义方法,而不是更改内置类(除非您有非常好的理由,否则不要这样做)。
此外,在生成表格时,Array的结构可能更方便,更直观地访问元素。
让存储在2-d阵列整个表,说
@table_array = [
["Name","Gender","Age"],
["Andy","M","20"],
["Mary","F","19"],
["Tony","M","18"]
]
,其中每个所述第一元件用作表标题和其余的是表的内容。现在,我们可以使用格式良好的table_array中和表类属性生成表格的html代码:
def ToCell (tag,value)
value.map{ |c| "<#{tag}>#{c}</#{tag}>" }.join
end
def ToTable (table_array, table_class)
headers = "<tr>" + ToCell('th',table_array[0]) + "</tr>"
cells = table_array[1..table_array.count].map{ |each_row|
"<tr>#{ToCell('td',each_row)}</tr>"
}.join
table = "<table class=\"#{table_class}\"><thead>#{headers}</thead><tbody>#{cells}</tbody></table>"
end
,并嵌入它。ERB文件
<%= ToTable(@table_array,"table").html_safe %>
输出会是这样的,如果ü从浏览器
<table class="table">
<thead>
<tr><th>Name</th><th>Gender</th><th>Age</th></tr>
</thead>
<tbody>
<tr><td>Andy</td><td>M</td><td>20</td></tr>
<tr><td>Mary</td><td>F</td><td>19</td></tr>
<tr><td>Tony</td><td>M</td><td>18</td></tr>
</tbody>
</table>
我只注意到,因为我最终改变剧本,输出是最肯定不是这样。在短短一秒钟内编辑。 – Matchu 2010-04-14 01:20:23
已编辑。好多了。 – Matchu 2010-04-14 01:21:36