我有一个带有用户和国家/地区型号的rails应用程序。用户拥有属性votes_count并且属于某个国家/地区。我正在尝试编写rails查询,该查询将在每个具有最高投票数的国家/地区中找到该用户。
之类的东西User.order(:votes_count).joins(:country).group_by(:country_id)
我知道这不是正确的语法只是我需要的一个例子。提前谢谢。
答案 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)")
我不知道你的架构。但是这样的事情应该可行。