Correção de N+1 em meetings
TLDR: Inclui
user_profilenoincludesda query de meetings, eliminando o N+1 gerado peloMeetingSerializer.
Contexto
O MeetingSerializer acessa participant.user.user_profile.slug para cada participante. A query Meetings::ByUserQuery já faz includes(meeting_participants: :user) mas não inclui user_profile. Isso gera uma query extra por participante por meeting — um N+1 claro, que se multiplica em endpoints de listagem como /closest_meetings e /latest_meetings.
Objetivos
- Eliminar o N+1 no carregamento de
user_profiledos participantes de meetings
Fora de escopo
— (não registrado na spec original)
Mudanças
app/queries/meetings/by_user_query.rb: alterarincludes(meeting_participants: :user)paraincludes(meeting_participants: { user: :user_profile })
Como verificar
- Rodar os testes existentes de meetings
- Confirmar via logs do Rails (gem
bulletou contagem de queries) que não há queries extras por participante
Documentação
Nenhuma mudança de documentação necessária.