2, "user1@gmail.com"=>1} 我尝试了以下 User.joins(:orders).gro-6ren">
gpt4 book ai didi

mysql - 按具有 has_many 关联的连接表列分组

转载 作者:行者123 更新时间:2023-11-28 23:57:26 26 4
gpt4 key购买 nike

下面是我的关系

    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/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com