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

可能有一种更聪明的方法,但一种可能的方法是获取这样的类数组

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 回答