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

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community 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?

-Matt
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

hth




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
> http://lists.rubyonrails.org/mailman/listinfo/rails
>


--
Rodney
http://www.pinupgeek.com
http://www.dutchrailers.org
This topic is locked and can not be replied to.