0

場合User has_many Items:publishedまた、 items の属性を に設定することで、アイテムを公開できますtrue

アイテムを作成したユーザーごとに、公開されたアイテム平均数を取得するにはどうすればよいですか?

と呼ばれるアイテムのスコープがあるためpublished、次のように記述して公開されたすべてのアイテムを取得できます。

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

1 に答える 1

1

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
于 2013-03-20T18:38:20.377 に答える