0

我有 2 个表(与 sqlite3 的多对多关系):-User -Credit(带有 user_id 和分数)

我尝试计算用户的排名。为了计算这个用户的排名,我需要找到这个用户所有积分的总和。但我不知道如何做到这一点:(

我尝试过这样的事情,但它不起作用:

User.all.join(:credits).order(sum(:score)).index(@user)

我收到此错误:

TypeError in UsersController#index
can't convert Symbol into String

感谢 !

4

1 回答 1

0

要求和(或计数),您应该将 sum 与 group 一起使用(即在“group by”中转换),因为您需要以某种方式对用户进行分组才能对他们的分数求和。我没有尝试以下代码,但它应该是这样的:

User.select("users.name, sum(credits.score)").joins(:credits).group("credits.user_id")

我希望这可以帮助你

于 2012-07-29T22:26:41.337 回答