Versuchen Sie Folgendes:
User.select('users.*,MAX(donations.created_at) as most_recent_donation').
joins(:donations).order('most_recent_donation desc').group('users.id')
Ich nehme an, ein Benutzer hat viele Spenden, dies würde die zuletzt erstellte Spende auswählen und verschiedene Benutzer auswählen, die nach ihrer ID filtern.
Ich habe das aber nicht getestet.