^^ I should add

Is it possible to do this in one SQL query?

Thanks

On May 1, 4:55 pm, Gavin <[email protected]> wrote:
> Hey all
>
> Suppose Post has many comments.
>
> Is it possible to call Post.all and order them by the number of
> comments each has without adding a column 'comments_count' to the Post
> table?
>
> If not, can anyone think of a nicer way of doing it this than:
>
> def Post.order_by_comments
>   posts = Post.all
>   post_hash = {}
>   posts.each { |post| post_hash[post.id] = post.comments.count }
>   sorted_posts = posts.sort {|a,b| a[1]<=>b[1] }  # =>sorts by keys
>   ids = sorted_posts.collect(&:first)  # => collects the post ids
>   ids.reverse! # =>sorts the ids from most comments to least
> end
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to