首页 > 解决方案 > ruby on rails - 按类别中的计数产品列排序

问题描述

请告诉我如何按类别中的计数产品列进行排序。我的类别.rb:

class Category < ActiveRecord::Base
  has_many:category_products
  has_many:products, through: : category_products

我的 category_index.rb

has "COUNT(category_products.product_id)", as: :count, type: :integer

标签: ruby-on-rails

解决方案


如果我理解您的问题,请检查这是否是您要查找的内容。

在控制器中:

@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列名。


推荐阅读