Ruby on rails 按所属关联计数订购产品
大减价Ruby on rails 按所属关联计数订购产品,ruby-on-rails,activerecord,Ruby On Rails,Activerecord,大减价 belongs_to :product, :accessible => true belongs_to :brand, :accessible => true end Class Product has_many :sales belongs_to :brand end Class Brands has_many :products has_many :sales end 如何获得产品销量最多的品牌?如果您想继续使用activerecord,您可以使用,但
belongs_to :product, :accessible => true
belongs_to :brand, :accessible => true
end
Class Product
has_many :sales
belongs_to :brand
end
Class Brands
has_many :products
has_many :sales
end
如何获得产品销量最多的品牌?如果您想继续使用activerecord,您可以使用,但需要两个查询才能完成:
>> brands = Sale.count(:id, :include => :brand, :group=> 'sales.brand_id', :limit => 5)
SQL (0.7ms) SELECT count(DISTINCT `sales`.id) AS count_id, sales.brand_id AS sales_brand_id FROM `sales` LEFT OUTER JOIN `brands` ON `brands`.id = `sales`.brand_id GROUP BY sales.brand_id LIMIT 5
=> #<OrderedHash {967032312=>3, 1392881137=>1}>
>> brands_with_most_sales = Brand.find(brands.keys)
Brand Load (0.5ms) SELECT * FROM `brands` WHERE (`brands`.`id` = 967032312)
=> [#<Brand id: 967032312, title: "brand-x", created_at: "2009-11-19 02:46:48", updated_at: "2009-11-19 02:46:48">]
否则,您可能希望使用