2016-03-20 14 views
0

Sitenin Kullanıcısı için, her bir kişinin hangi grupta olduğunu görmek üzere bir tablo oluşturmaya çalışıyorum. Bir Grup tablomuz ve bir Kişi tablom var. Şu anda sadece tek bir kişinin görüş alanında görünmesini istiyorum. Açıklama için size kodumu göstereceğim. Bu benim masam. HABTM verilerini görünümüne getirme

<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>

Şu anda her grup, her gruba ait olsun veya olmasın her bir kişi için yukarı gösteriyor. Bunu nasıl düzelteceğinizle ilgili bir fikrin var mı?

cevap

1

Grup ve Kişiler modellerinizi mutlaka görmem gerekiyor, ancak büyük olasılıkla yapmanız gereken şey person.groups'un üzerinden geçmektir. Böyle bir şey: Eğer olurdu

<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> 

Bu şekilde sadece ziyade groups hepsinden daha veritabanınızda, bireysel person ait groups üzerinde yineleme.

Bu şekilde biçimlendirirseniz, her kişi aynı sayıda grupta olmadıkça, tablo satırlarınızın farklı uzunluklarda olacağını unutmayın.

1

Kullanım

group.people.each do |person| 

yerine

@people.each do |person| 

her gruptaki tüm kullanıcılar arasında yineleme.

İlgili konular