查找每个国家/地区的最高投票数

时间:2014-04-30 04:21:48

标签: ruby-on-rails ruby

我有一个带有用户和国家/地区型号的rails应用程序。用户拥有属性votes_count并且属于某个国家/地区。我正在尝试编写rails查询,该查询将在每个具有最高投票数的国家/地区中找到该用户。

之类的东西
User.order(:votes_count).joins(:country).group_by(:country_id)

我知道这不是正确的语法只是我需要的一个例子。提前谢谢。

2 个答案:

答案 0 :(得分:1)

如果我理解正确您拥有属于国家/地区的用户模型,并且用户模型有一个名为“votes_count”的列。

在这种情况下,你不必在rails查询中指定连接,但是例如,如果你想在澳大利亚检查更高票数的用户,你只需要选择你正在检查的国家:

australia = Country.find_by_name 'australia' # I'm assuming Country has a name column

然后通过votes_cont订购用户并获取第一个:

first_australian = australia.users.order('votes_cont DESC').first

如果有帮助请告诉我 如果我没有正确理解你的模型,你可以更好地指定它们的关联吗?

答案 1 :(得分:0)

尝试:

User.joins(:country).group(:country_id).having("MAX(votes_count)")

我不知道你的架构。但是这样的事情应该可行。