Coba ini:
User.select('users.*,MAX(donations.created_at) as most_recent_donation').
joins(:donations).order('most_recent_donation desc').group('users.id')
Saya kira seorang pengguna memiliki banyak donasi, ini akan memilih donasi yang dibuat paling baru dan akan memilih pemfilteran pengguna yang berbeda berdasarkan id mereka.
Saya belum menguji ini.