我有2个表(与sqlite3的多对多关系): -用户 -Credit(使用user_id&得分)
我尝试计算用户的排名。 要计算此用户的排名,我需要找到该用户所有信用的SUM。 但我不知道这是怎么回事:(
我尝试了类似的东西,但它不起作用:
User.all.join(:credits).order(sum(:score)).index(@user)
我收到此错误:
TypeError in UsersController#index
can't convert Symbol into String
谢谢!
答案 0 :(得分:0)
要求总和(或计数),您应该使用总和与组(在“分组依据”中转换), 因为你需要以某种方式对用户进行分组以便能够对他们的分数求和。 我没有尝试以下代码,但它应该是这样的:
User.select("users.name, sum(credits.score)").joins(:credits).group("credits.user_id")
我希望这有助于你