下面是我的关系
class User < ActiveRecord::Base
has_many :orders, dependent: :destroy
end
# Table name: orders
# id :integer not null, primary key
# status :string(255)
# total_cost :integer default(0)
# user_id :integer
# created_at :datetime
# updated_at :datetime
class Order < ActiveRecord::Base
belongs_to :user
end
我试图列出用户及其订单数。对于预期输出
{"user1@gmail.com"=>3, "user1@gmail.com"=>2, "user1@gmail.com"=>1}
我尝试了以下
User.joins(:orders).group("orders.users.id").count
并得到以下输出(key为用户id,value为订单数)
{2=>3, 3=>2, 4=>1}
如何用用户电子邮件替换键和订单计数的值?
最佳答案
这对你有用吗?
Hash[User.includes(:orders).map{|u| [u.email, u.orders.count ]}]
关于mysql - 按具有 has_many 关联的连接表列分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31247431/