Rails 2 to Rails 3 - How to convert this sql query ?

82 views
Skip to first unread message

dme69

unread,
Sep 8, 2010, 5:35:52 AM9/8/10
to Ruby on Rails: Talk
Hello all,

Can someone help me with this query ?

Here is the query used in rails 2. The idea here is to obtain the top
10 widgets.
Widget.find(:all, :select => 'widget_type_id, COUNT(widget_type_id) AS
widgettypeid', :group => 'widget_type_id', :order => 'widgettypeid
DESC', :limit => 10)

This is deprecated and i want to port it to rails 3.

Thanks for your help.

Dominique.

Tony Primerano

unread,
Sep 8, 2010, 9:42:20 AM9/8/10
to Ruby on Rails: Talk

I'm not sure how to do the "COUNT(widget_type_id) AS widgettypeid" as
this doesn't seem to work below but it is close. hoping someone will
chime in. :-) I'm sure I'm missing something simple.

Widget.group(:widget_type_id).select('widget_type_id,
count(widget_type_id) AS widgettypeid').order(:widgettypeid).limit(10)

No docs on this at http://api.rubyonrails.org/classes/ActiveRecord/QueryMethods.html#method-i-group
but guide has some examples. http://guides.rubyonrails.org/active_record_querying.html

dme69

unread,
Sep 8, 2010, 9:54:20 AM9/8/10
to Ruby on Rails: Talk
Great !
This seems to work perfectly for me. Thanks for your help. I will take
a big look at this to understand how it is working.

Dominique.

On 8 sep, 15:42, Tony Primerano <tony.primer...@gmail.com> wrote:
> I'm not sure how to do the "COUNT(widget_type_id) AS widgettypeid" as
> this doesn't seem to work below but it is close.  hoping someone will
> chime in.  :-)  I'm sure I'm missing something simple.
>
> Widget.group(:widget_type_id).select('widget_type_id,
> count(widget_type_id) AS widgettypeid').order(:widgettypeid).limit(10)
>
> No docs on this athttp://api.rubyonrails.org/classes/ActiveRecord/QueryMethods.html#met...
Reply all
Reply to author
Forward
0 new messages