Rails:如何找出哪个父对象具有最大的子记录

Ram*_*jan 0 sql ruby-on-rails rails-activerecord

这是我正在使用的两个模型,

用户模型

class User < ActiveRecord::Base
  has_many :products
end
Run Code Online (Sandbox Code Playgroud)

产品型号

class Product < ActiveRecord::Base
  belongs_to :user
end
Run Code Online (Sandbox Code Playgroud)

现在我想找出哪个用户拥有最大数量的产品。

我知道我可以通过为用户和相关产品构建一个循环来找出答案,但是有没有办法通过活动记录查询来找出答案?

Fer*_*Fer 6

Product.select(:user_id).group(:user_id).order("count(user_id) desc").first.user 可以是一个解决方案