我有以下SQL,在Rails中使用活动记录对象/方法似乎无法表达。

SELECT users.*, count(followings.user_id) as expr1 FROM users
  inner join followings on id = follows where id in (2,3,4)
  group by followings.follows order by expr1 desc;


显然,[2,3,4]被替换为任何Ids数组。

该查询不执行任何问题,并给出我想要的结果。但是我在如何以“ ActiveRecord”方式表达方面遇到很大困难。

如何按数字关注者订购我的用户模型?

最佳答案

您可以尝试使用以下查询:

User.select("users.*, count(followings.user_id)").joins(:followings)
.where("users.in (?)", [2,3,4]).group_by("followings.follows")


如果您遇到其他错误,请告诉我。

10-02 20:44