如果一个User
has_many
Items
. 并且可以通过将 items 中的:published
属性设置为 来发布项目true
。
如何获得每个创建项目的用户的平均已发布项目数?
我有一个名为 的项目范围published
,因此您可以通过以下方式获取所有已发布的项目:
@items = Item.published
@items = @user.items.published
如果一个User
has_many
Items
. 并且可以通过将 items 中的:published
属性设置为 来发布项目true
。
如何获得每个创建项目的用户的平均已发布项目数?
我有一个名为 的项目范围published
,因此您可以通过以下方式获取所有已发布的项目:
@items = Item.published
@items = @user.items.published
一种方法是:
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