Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Activerecord:Zupfe bestimmte Spalten und Assoziationszahlen der Assoziation

Verwenden Sie eine Auswahlabfrage

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") 

Sollte dies in einer einzigen Abfrage geschehen, antworten die Objekte auf den Alias ​​der Spalte wie schedule_date und schedule_impression_count

Wenn Sie diese Objekte für andere Daten in derselben Ansicht verwenden müssen, dann Account.eager_load(schedules: :impressions) sollte auch funktionieren und wird auch eine einzelne Abfrage ausführen.