在Rails中分组和计数

时间:2009-05-31 03:17:33

标签: sql ruby-on-rails activerecord

我有一些代码,我得到一个空对象。

@results = PollRoles.find(
            :all, 
            :select => 'option_id, count(*) count', 
            :group => 'option_id', 
            :conditions => ["poll_id = ?", @poll.id])

这是编写查询的正确方法吗?我想要一个具有选项ID的记录集合以及在PollRoles模型中找到该选项id的次数。

编辑:这就是我在迭代结果的方式:

<% @results.each do |result| %>
            <% @option = Option.find_by_id(result.option_id) %>
            <%= @option.question %> <%= result.count %>
        <% end %>

2 个答案:

答案 0 :(得分:0)

您想使用this function来执行此类操作 PollRoles.count(:all, :group => 'option_id')应该每option_id返回一个哈希映射,其中包含与之匹配的记录数。

答案 1 :(得分:0)

你对此有何看法:

PollRoles.find(:all,:conditions =&gt; [“poll_id =?”,@ poll.id])。collect {| p | p.option_id}