hola vuelvo a escribir la pregunta
así que tengo 3 modelos 'Usuario' 'Compañero' 'Tarea'
y
User. has_many: companions, has_many: tasks Companion: belongs_to: user Task: belongs_to: usery los datos que necesito son datos mensuales de Usuario, y Usuario que tiene Compañeros, y finalmente quién ha ordenado una Tarea
así que estaba tratando de usar estos códigos
User.group_by_month(:created_at).countHasta aquí pude tener los datos de lo que estaba pensando.
User.joins(:companions).uniq.group_by_month(:created_at).county yo el numero mensual contado de usuarios que tiene acompañantes pero no funciona en absoluto
entonces también necesito unirme a una 'Tarea' para averiguar qué usuario tiene un compañero y también ordenó una tarea
entonces el resultado que me gustaría ver es
Contar Usuario registrado mensualmente
Aug, 2020 = > 300Usuarios que tienen acompañante
Aug, 2020 = > 150Usuarios que tienen acompañante y ordenaron una tarea
Aug, 2020 = > 75Necesito números únicos Usuario que tiene Companion y Usuario que tiene Companion y también ordenó una tarea
Uniq funciona en arreglos. Para una collection of records , puede usar distinct .
Verifique: https://apidock.com/rails/v5.2.3/ActiveRecord/QueryMethods/distinct
Eso significa que puedes usar:
User.joins(:companions).distinct.group_by_month(:created_at).count