2012-06-13 71 views
0
@search = Sunspot.search(Event, Person, Organization) do 
    keywords params[:q] 
    order_by(:score) 
    end 

基於搜索結果,我想創建一個模型列表,每個模型的計數。分組太陽黑子模型,以獲得排序/計數查看

  • 活動(12)
  • 人(5)
  • 組織(3)

有沒有辦法做到這一點類型太陽黑子分組的?

<% @search.each_hit_with_result do |hit, result| -%> 
    <%= result.class %> <!- Gives me Model, but repeated --> 
<% end %> 

回答

0

有可能是一個更聰明的辦法,但一個可能的方式是獲得類的數組這樣

classes = @search.results.map(&:class) # this will give array of returned classes 

那麼就在this link

h = Hash.new(0) 
classes.each { | v | h.store(v, h[v]+1) } 

# h = { 3=>3, 2=>1, 1=>1, 4=>1 } 

希望幫助建議

+0

謝謝Bashar做到了! – Walksalong

+0

由於太陽黑子自動添加分頁,我必須將per_page設置爲999999或者您可以進行計數。 – Walksalong

+0

是的,這似乎是唯一的方法。雖然對我來說伯爵看起來更清潔。順便說一句,只要確保你沒有返回大量的結果,否則隨着時間的推移,這可能會減慢很多。 –