如何通过另一个表的值按后代顺序对用户进行排序? (rails)

时间:2016-04-05 08:50:49

标签: sql ruby-on-rails-4

我有一个用户表和一个订单表。一个用户可以拥有多个订单。

用户表:

| id | username | email |
-------------------------
| .. | ....     | ..... |
-------------------------

订单表:

| id | user_id | price |
------------------------
| .. | .....   | ....  |
------------------------

如何按照后代顺序按订单数量对用户进行排序?

现在我能想到的是:

@users = User.order('orders.count desc').all

但这似乎不正确。有人可以帮忙吗?提前谢谢。

1 个答案:

答案 0 :(得分:1)

谢谢你们!我刚刚从这个网站找到答案:http://chibicode.com/order-posts-by-comments-count-in-rails/

我添加此代码:

User.joins(:orders).group("users.id").order('count(orders.id) desc').all

它就像魔法一样。 =))