0
  @search = Sunspot.search(Event, Person, Organization) do
    keywords params[:q]
    order_by(:score)
  end

検索結果に基づいて、各モデルの数を含むモデルのリストを作成したいと思います。

  • イベント (12)
  • 人 (5)
  • 組織 (3)

Sunspot でこのタイプのグループ化を行う方法はありますか?

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

1 に答える 1

0

おそらくもっとスマートな方法がありますが、可能な方法の 1 つは、このようなクラスの配列を取得することです。

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

次に、このリンクで提案されているようにします

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

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

それが役立つことを願っています

于 2012-06-15T23:12:14.653 に答える