2016-03-30 22 views
0

Bir insan modeli olan has_and_belongs_to_many Gruplar ve Grup HABTM Kişileri olan bir uygulama yapıyorum. Belirli bir grupta kaç kişinin olduğunu gösteren bir istatistik sayfası oluşturmaya çalışıyorum. Tabloda gösterebileceğim hızlı bir yolu bilen biri kaç tane kaydın belirli bir modele ait olduğunu biliyor mu? Açıklık için bazı kodları göstereceğim.Raylar Aktif Kayıt ile ilgili konu

Zaten sahip olduğum bir tarihi görüntülemek için bir yöntem.

def subscribed_num 
@person = Person.all.subscribed.count 
@engaged = Person.all.count 
end 

İşte Şimdi belirli bir grup içinde kaç kişiyi listelemek için her iki model People ve Groups kullanmak istiyorum benim bakış

<div class="container"> 
<h2>Statistics</h2> 

<p class="total-number">All Engaged People: <%= @engaged %></p> 
<p class='total-number'>Subscribed People: <%= @person %></p> 
<p><%= link_to "Send Message", root_path %></p> 
</div> 

olduğunu.

cevap

1

Sayımı bulmak çok basittir, .count numaralı telefonu arayın. davanızı için

(a gruptaki insanların sayısını gösteren): Yalnızca sayımını döndürmesini sağlayacak şekilde .count yöntemi (SQL sorgusu değiştirecek o

@group = Group.first 
count = @group.people.count 

Not yani aslında değil Tüm kayıtlarınızı hafızaya yükleyebilir, bu da yavaş olabilir).

Ben bu ile ne demek emin değilseniz, belki de ölüm öpücüğü olabilir `kayıtların büyük bir sayı ile bir masaya .all` çağrılması this stackoverflow question veya this section of the rails guide

+0

bir göz gerektiğini . Her şeyi belleğe yüklemek sunucunuzu yok edebilir, bu yüzden en iyi şekilde kaçınılır. – tadman

İlgili konular