Ruby on rails 查找每个国家的得票率最高者

Ruby on rails 查找每个国家的得票率最高者,ruby-on-rails,ruby,Ruby On Rails,Ruby,我有一个rails应用程序,包含用户和国家/地区模型。用户具有投票数属性,并且属于某个国家/地区。我正在尝试编写rails查询,以查找每个国家中投票数最高的用户。差不多 User.order(:votes_count).joins(:country).group_by(:country_id) 我知道这不是正确的语法,只是我需要的一个例子。提前谢谢。试试: User.joins(:country).group(:country_id).having("MAX(votes_count)") 我

我有一个rails应用程序,包含用户和国家/地区模型。用户具有投票数属性,并且属于某个国家/地区。我正在尝试编写rails查询,以查找每个国家中投票数最高的用户。差不多

User.order(:votes_count).joins(:country).group_by(:country_id)
我知道这不是正确的语法,只是我需要的一个例子。提前谢谢。

试试:

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

我不知道你的计划。但类似的方法可能会起作用。

如果我理解正确,您拥有属于某个国家的用户模型,并且该用户模型有一个名为“选票计数”的列

在这种情况下,您不必在rails查询中指定联接,但例如,如果您想检查澳大利亚投票率较高的用户,只需选择您要检查的国家:

australia = Country.find_by_name 'australia' # I'm assuming Country has a name column
然后按票数排序用户\u cont并选择第一个:

first_australian = australia.users.order('votes_cont DESC').first
如果有帮助,请告诉我
如果我没有正确理解您的模型,您能更好地指定它们的关联吗?

请尝试使用此
用户。包括(:country)。选择('MAX(voces\u count')。分组依据(:country\u id)
@Pavan我相信您的解决方案只能获取MAX(voces\u count)作为结果。而不是与条件匹配的所需用户数据。