Matchus answe r inspirierte mich sehr und ich modifizierte es zu selbstdefinierten Methoden, anstatt die eingebaute Klasse zu ändern (tun Sie das nicht, außer Sie haben einen wirklich guten Grund).
Darüber hinaus beim Generieren einer Tabelle, Array-Struktur vielleicht viel bequemer und intuitiver Zugriff auf Elemente.
die gesamte Tabelle in einem 2-D-Array gespeichert Lassen, sagen
@table_array = [
["Name","Gender","Age"],
["Andy","M","20"],
["Mary","F","19"],
["Tony","M","18"]
]
in der jeweils das erste Element dient als der Tabellenkopf und der Rest ist Tabelleninhalt. Nun können wir die gut formatierte table_array verwenden und eine Tabellenklasse Attribut eine Tabelle HTML-Code zu generieren:
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
und betten sie in.erb
<%= ToTable(@table_array,"table").html_safe %>
der Ausgang so etwas wie dies wäre Datei, wenn u aus dem Browser sieht
<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>
Ich habe gerade festgestellt, dass, da ich am Ende das Skript geändert wurde, ist die Ausgabe definitiv nicht das. In nur einer Sekunde bearbeiten – Matchu
Bearbeitet. Viel besser. – Matchu