2017-06-13 3 views
0

Ich versuche, die Spalten eines Modells als Teil einer Tabelle anzuzeigen, die die Ergebnisse einer Abfrage zeigt. Ich möchte dies dynamisch mit einer jeden Schleife in Ruby tun.Ruby on Rails zeigt Modellspaltennamen als Teil einer Tabelle an

<table> 
    <tr> 
     <%= Terminology.column_names.each do |c| %> 
     <th> <% c.humanize %> </th> 
     <% end %> 
    </tr> 
</table> 

Wenn ich dies anzuzeigen, zeigt es 30 oder so leere Header-Tags, dann ist die Anordnung von Spaltennamen zwischen dem letzten Header und dem Ende der Reihe gesetzt wird. Was geht hier vor sich?

Antwort

4

ich Ihr fehlt das = Zeichen in <% c.humanize %> glauben.

sollte <%= c.humanize %> sein. Der = zeigt den Wert an.

Außerdem müssen Sie die = in <%= Terminology.column_names.each do |c| %> entfernen.

Das sollte <% Terminology.column_names.each do |c| %> sein.

+0

Versuchen Dies funktioniert, aber jetzt das Array über dem Tisch noch sichtbar, und im HTML, ist es in der gleichen Position wie zuvor. Wie werde ich das los? – jgolfman

+0

Ich habe meinen Beitrag wahrscheinlich bearbeitet, bevor Sie es erneut versucht haben. Haben Sie das '=' in '<% = Terminology.column_names.each do | c | entfernt %> '? –

+0

Danke, ich wusste nicht, dass es einen Unterschied zwischen den verschiedenen Tags gibt. Ich dachte, dass <% = nur ein Skript wie in PHP öffnen würde. – jgolfman

1

Try this:

<% Terminology.column_names.each do |c| %> 
<th> <%= c.humanize %> </th> 
<% end %> 

prüfen diese verwandten post

2

Dieses

<table> 
 
    <tr> 
 
     <%@variable_name.column_names.each do |c| %> 
 
     <th> <%= c.humanize %> </th> 
 
     <% end %> 
 
    </tr> 
 
</table>