場合User
has_many
Items
。:published
また、 items の属性を に設定することで、アイテムを公開できますtrue
。
アイテムを作成したユーザーごとに、公開されたアイテムの平均数を取得するにはどうすればよいですか?
と呼ばれるアイテムのスコープがあるためpublished
、次のように記述して公開されたすべてのアイテムを取得できます。
@items = Item.published
@items = @user.items.published
場合User
has_many
Items
。:published
また、 items の属性を に設定することで、アイテムを公開できます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