rails:Ruby on Rails计算连接表的“等级”

时间:2012-07-29 14:22:26

标签: ruby-on-rails ruby ruby-on-rails-3 sqlite

我有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

谢谢!

1 个答案:

答案 0 :(得分:0)

要求总和(或计数),您应该使用总和与组(在“分组依据”中转换), 因为你需要以某种方式对用户进行分组以便能够对他们的分数求和。 我没有尝试以下代码,但它应该是这样的:

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

我希望这有助于你