我在根据他/她收集的徽章数量订购用户时遇到问题。我正在使用 Gem Merit 制作徽章系统。所以如果我想收集用户的徽章,代码将user.badges
转换为 sql
Merit::Sash Load (1.6ms) SELECT "sashes".* FROM "sashes" WHERE "sashes"."id" = ? LIMIT ? [["id", 5], ["LIMIT", 1]]
Merit::BadgesSash Load (1.4ms) SELECT "badges_sashes".* FROM "badges_sashes" WHERE "badges_sashes"."sash_id" = ? [["sash_id", 5]]
在用户模型中,我将 Merit 和has_merit
code 包括为优点文档所说的,当我写users = User.where(id: user_ids).left_joins(:merit).order(is_verified: :desc).group(:id).order("count(badges.id) desc")
它时说错误,因为它无法识别merit
或badges.id
我如何根据拥有最多徽章的用户对用户进行实际排序?谢谢你!