Prova detta:
User.select('users.*,MAX(donations.created_at) as most_recent_donation').
joins(:donations).order('most_recent_donation desc').group('users.id')
Jag antar att en användare har många donationer, detta skulle välja den senast skapade donationen och välja distinkta användare som filtrerar efter deras id.
Jag har dock inte testat detta.