你好,我又在写问题了
所以我有3个模型'用户' '同伴' '任务'
和
User. has_many: companions, has_many: tasks
Companion: belongs_to: user
Task: belongs_to: user
和我需要的数据是用户的每月数据,用户谁有同伴,然后最后谁订购了任务
所以我试着用这个代码
User.group_by_month(:created_at).count
直到这里我才能够得到我所想的数据
User.joins(:companions).uniq.group_by_month(:created_at).count
和I每月计算有伴侣的用户数量但它根本不起作用
然后我还需要加入一个"任务",以找出哪个用户有一个同伴,并订购了一个任务
所以我想看到的结果是
用户月注册数
Aug, 2020 = > 300
有同伴的用户
Aug, 2020 = > 150
有同伴并订购任务的用户
Aug, 2020 = > 75
我需要唯一号码的用户谁有同伴,和用户谁有同伴,也订购了一个任务
Uniq
适用于数组。对于collection of records
,可以使用distinct
。
检查:https://apidock.com/rails/v5.2.3/ActiveRecord/QueryMethods/distinct
这意味着你可以使用:
User.joins(:companions).distinct.group_by_month(:created_at).count