2011-06-03 62 views
2

假設我有一個'Car'對象,其中包含'color'列。我想在我看來,它的顏色列表與它出現的次數一致。Ruby on Rails 3簡單分組和計數

---Car----Color--- 
Explorer Black 
Charger Yellow 
Prius Black 
Jetta Black 
Ferrari Red 
Pinto Yellow 

在我看來,我想:

--Color--Count-- 
Black  3 
Yellow  2 
Red  1 

在我的控制器我試圖使一個列表,如:

@colorcount = Car.all.count(:group => :color) 

,然後在我看來,我有這樣的事情

<%= @colorcount.each do |car, count| %> 
    <%= car.color %>, <%= count %> 
<% end %> 

但我得到一個錯誤,如:

undefined method `each' for 0:Fixnum 

這還有很多嗎?謝謝你的幫助。

回答

9
@groups = Car.count(:group=>:color) 

<% @groups.each do |color,count| %> 
    <%= "#{color}, #{count}" %> 
<% end %> 
+0

我很接近!被刪除的答案也有效。感謝你們倆。我添加了按此排序:@groups = Car.count(:group =>:color,:order =>'count_all DESC') – a3uge 2011-06-03 03:46:57