Если я понимаю ваш вопрос, проверьте, если это то, что вы ищете.
В контроллере:
@categories = Category.joins(:category_products)
.select("categories.*, category_products.product_id, COUNT(category_products.product_id) product_count")
.group('category_products.product_id')
.order("product_count DESC")
Тогда в поле зрения:
<% categories.each do |category| %>
<p><%= category.product_count %> | <%= category.name %></p>
<% end %>
Я не знаю ваших Category
имен столбцов.