Ell*_*iot 3 ruby ruby-on-rails ruby-on-rails-3
这是我的数组:
finalcount = Vote.where(:month => month, :year => year, :vote_id => vote.id).count
Run Code Online (Sandbox Code Playgroud)
我想用group_by(我认为?)将投票分组user_id(每个投票都有),然后user_id以最高票数返回.
我有什么想法可以做到这一点?
你试过这个group方法吗?
finalcount = Vote.where(:month => month, :year => year, :vote_id => vote.id).group(:user_id).count
Run Code Online (Sandbox Code Playgroud)
会给你一个Hash键的位置user_id,值是count.然后,您可以调用max此结果以获取包含user_id和的两元素数组count.
这是一个我很方便的应用程序示例,我使用计算结果找到正确的模型实例并从中读取属性:
ruby-1.9.2-p136 :001 > ExternalPost.group(:service_id).count
=> {18=>1, 19=>1, 21=>4}
ruby-1.9.2-p136 :002 > ExternalPost.group(:service_id).count.max
=> [21, 4]
ruby-1.9.2-p136 :003 > Service.find(ExternalPost.group(:service_id).count.max.first).user.first
=> "Brandon"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11016 次 |
| 最近记录: |