2013-03-20 58 views
0

如果有Userhas_manyItems。並且可以通過將項目中的:published屬性設置爲true來發布項目。根據來自父母和子女模型的參數獲取平均計數

如何得到平均數發佈的項目每個用戶創建的項目?

我有叫published項的範圍,因此您可以通過書面形式獲取所有發佈的項目:

@items = Item.published 
@items = @user.items.published 

回答

1

一種方法是:

avg = Item.published.count.to_f/User.count 

編輯:

嘗試這個:

@published_items = User.joins(:items).where('items.published = ?', true) 
    avg = @published_items.count.to_f/@published_items.all(:select => 'distinct users.*').count 

或者:

avg = Item.published.count.to_f/User.joins(:items).where('items.published = ?', true).all(:select => 'distinct users.*').count 
+0

老實說,我沒想到的是... :)。我如何改變它,以便它只計算創建項目的用戶?謝謝 – Dol 2013-03-20 18:39:47

+0

'用戶'誰創建'發佈=> true'項目或'用戶'有一些'項目?? ?? – codeit 2013-03-20 18:44:43

+0

創建發佈的用戶=> true。謝謝 – Dol 2013-03-20 18:45:41