ActiveRecordでgroupしたクエリを集計してviewに表示する
著者(Author
)毎に記事(Article
)をグループ化し、
それを記事一覧に 記事数として表示しようとしています。
記事一覧
|著者ID|著者名|記事数|
|-----|----------|--------|
| 1| AAA| 1|
| 2| BBB| 10|
| 3| CCC| 5|
ArticlesController
@articles = Article.all.group(:author_id)
~~~ 略 ~~~
@articles = @aticles.page(params[:page]).per(20))
index.html.erb
<% @articles.each do |article| %>
<tr>
<td><%= article.author.id %></td>
<td><%= article.author.name %></td>
<td><%= article.???????????? %></td>
</tr>
<% end %>
記事のグループ化は出来たのですが、記事数を表示する方法がわかりません。
Article.all.group(:author_id).count
のように.count
を使ってみましたが
著者IDと記事数のハッシュが返って来てしまうため その後のページネイションがうまく行かなくなります。
また、.sum
で集計するカラムはスキーマに追加していません ex) .sum(:amount)