Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Activerecord:selecione colunas específicas e contagens de associação da associação


Use uma consulta selecionada
Account.
  joins(schedules: :impressions).
  select("accounts.name as account_name, 
          schedules.date as schedule_date, 
          schedules.summary as schedule_summary, 
          count(impressions.id) as schedule_impression_count" ).
  group("accounts.name,schedules.date,schedules.summary") 

Deve fazê-lo em uma única consulta, então os objetos responderão ao alias da coluna como schedule_date e schedule_impression_count

Se você precisar usar esses objetos para outros dados na mesma visualização, Account.eager_load(schedules: :impressions) também deve funcionar e também executará uma única consulta.