self.rsvps.map {|rsvp| rsvp.user }
Jak powinienem to przepisać używając SQL?
self.rsvps.map {|rsvp| rsvp.user }
Jak powinienem to przepisać używając SQL?
rsvps.include(:user)
(zakładając że masz asocjację)
Odpowiadając na pytanie zawarte w tytule: bo po pierwsze bazy danych są zoptymalizowane pod kątem takich operacji (indeksy!), a po drugie jest spory narzut wykonywania n zapytań o jeden wiersz tabeli users dla każdego rsvp.
najszybciej można to zrobić tak:
User.joins(:rsvps => :event).where("rsvps.event_id = ?", Event.last.id).all
Wg moich prób