2016-03-20 7 views
0

Ich versuche, eine Tabelle für den Benutzer der Website zu machen, um zu sehen, in welchen Gruppen sich jede Person befindet. Ich habe eine Gruppen-Tabelle und eine People-Tabelle. Gerade jetzt möchte ich nur die Gruppen einer einzelnen Person in der Ansicht zeigen. Ich werde Ihnen meinen Code zur Klärung zeigen. Das ist mein Tisch.Bringen Sie HABTM-Daten in die Ansicht

<table class="table table-striped"> <thead> <tr> <th><%= sortable 'phone_number', 'Phone Number'%></th> <th><%= sortable 'subscribed', 'Subscribed State'%></th> <th><%= sortable 'groups' %></th> </tr> </thead> <tbody> <% @groups.each do |group| %> <% @people.each do |person| %> <tr> <td><%= person.phone_number %></td> <td><%= person.subscribed %></td> <td><%= group.name %></td> <% end %> <% end %> </tr> </tbody> </table>

Gerade jetzt zeigt jede Gruppe für jede Person auf, ob sie zu jeder Gruppe gehören. Irgendwelche Ideen, wie das zu beheben ist?

Antwort

1

Ich würde Ihre Gruppen- und Personenmodelle sehen müssen, um sicher zu sein, aber am wahrscheinlichsten, was Sie tun müssen, ist Schleife über person.groups. Etwas wie folgt aus:

<tbody> 
    <% @people.each do |person| %> 
    <tr> 
     <td><%= person.phone_number %></td> 
     <td><%= person.subscribed %></td> 

     <% person.groups.each do |group| %> 
      <td><%= group.name %></td> 
     <% end %> 

     <% end %> 
    </tr> 
    </tbody> 

diese Weise können Sie nur Iterieren über die groups zu den einzelnen person gehören, wäre, anstatt alle groups in Ihrer Datenbank.

Beachten Sie, dass Ihre Tabellenzeilen unterschiedliche Längen haben, wenn Sie sie auf diese Weise formatieren, es sei denn, jede Person befindet sich in der gleichen Anzahl von Gruppen.

1

Verwenden

group.people.each do |person| 

statt

@people.each do |person| 

durch alle Benutzer in jeder Gruppe iterieren.

Verwandte Themen