Activerecord Rails 3-如何使用求和运算的筛选结果?
我正在开发一个Rails 3应用程序,我需要返回一个玩家列表,其中每个玩家获得的积分总和大于指定的数量 我试过这个:Activerecord Rails 3-如何使用求和运算的筛选结果?,activerecord,ruby-on-rails-3,Activerecord,Ruby On Rails 3,我正在开发一个Rails 3应用程序,我需要返回一个玩家列表,其中每个玩家获得的积分总和大于指定的数量 我试过这个: Answer.sum(:points_received, :group => 'player_id').having("points_received > 5") 但这当然给了我一个错误:nomethoderor:未定义的方法'having'用于# 答案模型定义为: create_table "answers", :force => true do |t|
Answer.sum(:points_received, :group => 'player_id').having("points_received > 5")
但这当然给了我一个错误:nomethoderor:未定义的方法'having'用于#
答案模型定义为:
create_table "answers", :force => true do |t|
t.integer "player_id"
t.integer "round_id"
t.string "response"
t.integer "points_received"
end
因此,我知道sum返回的是player_id的有序散列,sum(points_received),但我只想看到sum(points_received)大于指定值的结果
有什么建议吗
提前谢谢 你能相信吗,就在我发布了这篇文章之后,我想交换一些语法,并得到了结果。这就是我最后做的:
Answer.group(:player_id).having("sum(points_received) > 5").sum(:points_received)
这返回了玩家ID的散列值和总和(得到的点数),仅用于总和大于5的玩家
无论如何,谢谢你的阅读。也许有一天这会帮助别人 两天内你不能接受自己的答案。。。否则我会的。你知道如何在rails 2.5中实现吗?没关系。。我找到了这个