我有survey
用户可以发帖answers
,因为每个问题的答案都会以foreign key
的形式保存在数据库中,我想知道哪个答案得到了评分最高。
所以,如果数据库看起来像这样:
answer_id
1
1
2
如何选择id
1
2
的答案被选择的次数多于ID为@question = AnswerContainer.where(user_id: params[:user_id])
的答案?
修改
到目前为止,我已经这样做了: {{1}}列出了给定用户投票的内容,但显然,这不是我需要的内容。
答案 0 :(得分:3)
YourModel.group(:answer_id).count
为您的示例返回类似:{1 => 2, 2 => 1}
答案 1 :(得分:1)
您可以按分组进行分组
Select answer_id, count(*) as maxsel
From poll
Group by answer_id
Order by maxsel desc
答案 2 :(得分:1)
正如rails文档(http://api.rubyonrails.org/classes/ActiveRecord/Calculations.html)中所述,当您使用带计数的组时,活动记录"返回一个哈希,其键代表聚合列,值是相应的数量"
Person.group(:市).Count之间 #=> {'罗马' => 5,'巴黎' => 3}