Was ist der beste Weg (idealerweise ein Juwel, aber wenn nötig, ein Code-Snippet), um aus einem Array von Hashes eine HTML-Tabelle zu generieren?
Zum Beispiel dieses Array von Hashes:
%Vor%Sollte diese Tabelle erzeugen:
%Vor%Das scheint nicht besonders schwierig von Hand zu sein. Je nachdem, wo Sie es verwenden werden, sollte dies wahrscheinlich irgendwo in einer eigenen Methode geschehen, aber hier ist das kleine Skript, das ich gerade geschrieben habe:
table.rb :
%Vor%Ausgabe:
%Vor%Offensichtlich gibt es einige Probleme - zum einen geht es davon aus, dass die Überschriften der Zeile eins mit allen anderen Überschriften übereinstimmen. Sie könnten dies jedoch recht einfach vorarbeiten und umgehen, indem Sie Nils in allen Zeilen für alle nicht richtig zugeordneten Überschriften ausfüllen.
Der Grund, warum es kein Juwel gibt, ist, dass das Generieren eines Tisches nicht wirklich ein großes Unterfangen ist. Es ist erstaunlich, was Sie tun können, wenn Sie sich anschnallen und tatsächlich selbst etwas programmieren:)
Die Antwort von Matchu hat mich sehr inspiriert und ich habe sie zu selbstdefinierten Methoden modifiziert, anstatt die eingebaute Klasse zu ändern (tue das nicht, außer du hast einen wirklich guten Grund).
Darüber hinaus kann die Array-Struktur beim Erstellen einer Tabelle wesentlich bequemer und intuitiver auf Elemente zugreifen.
Lassen Sie die gesamte Tabelle in einem 2D-Array speichern, sagen Sie
%Vor%wobei jedes erste Element als Tabellenkopf dient und der Rest Tabelleninhalt ist. Jetzt können wir das gut formatierte table_array und ein Tabellenklassenattribut verwenden, um einen HTML-Code für die Tabelle zu generieren:
%Vor%und betten Sie es in die .erb-Datei
ein %Vor%Die Ausgabe wäre etwa so, wenn Sie vom Browser aus sehen
%Vor%Tags und Links ruby ruby-on-rails html-table