我写了一个创建简单的基于ActiveRecord的facet搜索的gem。
如上所述,它使用group by
和having
子句来收集有关构面值的信息,并提供一个简单的API来访问构面并创建缩小结果的链接。
在你看来,你可以遍历结果就像任何其他的ActiveRecord收集
%table.table.table-condensed
%tbody
- @movies.each do |movie|
%tr
%td
%strong=movie.title
Use the search object to display further narrowing options to the user
- filter = @search.filter(:genre)
.col-md-4
.filter
.filter-title= filter.name
.filter-values
%ul.selected
- filter.selected.each do |genre|
%li= link_to genre.name, filter.remove(genre).path
%ul.selectable
- filter.facet.reject(&:selected).each do |facet_value|
- genre = facet_value.genre
%li
= link_to genre.name, filter.add(genre).path
%span.count= "(#{facet_value.count})"
https://github.com/fortytools/forty_facets
我认为SQL能做到这一点有很多的和具有和group by,P – argentum47 2014-11-01 12:53:45