Forum: Ruby on Rails Calling find on AR class, order by association count?

Announcement (2017-05-07): is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see and for other Rails- und Ruby-related community platforms.
unknown (Guest)
on 2006-06-07 14:07
(Received via mailing list)
I suspect that this is going to wind up trivial and I'm going to slap
myself in the head...

Suppose I have User and Comment AR classes.

User has_many :comments, Comment belongs_to :user

I want to do a User.find, which returns User objects in order of which
user has the most comments.  I suspect that this involves renaming the
COUNT(*) results of a sub-select so that I can order by them.

Answers, links to answers?

Rodney R. (Guest)
on 2006-06-07 16:56
(Received via mailing list)
hi Matt,

have a look at ActiveRecord#calculations in the api
basically something like this:

topspammers = Comment.count(:all, :group => 'user_id' , :order =>
'count_all desc')

gives you a nice OrderedHash  with the user_id as key and the number
of comments belonging to that user as the value


On 6/6/06, removed_email_address@domain.invalid
<removed_email_address@domain.invalid> wrote:
> Answers, links to answers?
> -Matt
> _______________________________________________
> Rails mailing list
> removed_email_address@domain.invalid

This topic is locked and can not be replied to.