3

사용자는 현재 확인란을 설정하여 데이터베이스 쿼리에 필터를 적용 할 수 있습니다. 체크 박스를 클릭레일 3 : 예측 필터링 (면 탐색)

Colour 
[] Red 
[] Green 
[] Blue  

Shape 
[] Round 
[] Square 

Size 
[] Small 
[] Medium 
[] Large 

쿼리, 예를 들어 상기 조건에 추가 where Ajax 요청을 트리거 내가 지금하고 싶은 무엇

@mymodel = MyModel.scoped 
@mymodel = @mymodel.where(:colour => params[:colour]) if params[:colour] 
... 

은 주어진 확인란을 선택하면 표시되는 얼마나 많은 결과를 나타 내기 위해 각 체크 박스 후에 수를 추가 할 수 있습니다. 예 :

Colour 
[] Red (148) 
[] Green (121) 
[] Blue (136) 
... 

은 체크 박스를 클릭하면, 카운트는 모든 체크 박스 옆에 갱신해야하며, 제로 결과에 관한 옵션이 표시되지 않습니다. 이 작업은 모든 필터 범주에서 작동해야합니다. 예를 들어 데이터베이스에 작고 빨간색이없는 경우 '작은'옵션은 '빨강'을 선택하면 사라지고 선택을 취소하면 다시 나타납니다.

이러한 유형의 예측 필터링을 수행하는 가장 좋은 방법은 무엇입니까?

감사합니다.

업데이트
보다 구체적으로, 내 질문은 : 레일의 측면 탐색을 구현하는 가장 좋은 방법은 무엇입니까?
(이 용어를 식별 해 주신 @Pasta)

답변

6

엄선 된 검색을 제공하는 오픈 소스 검색 엔진이 많이 있습니다. 우리는 Thinking Sphinx을 사용하고 매우 행복했습니다. Rails 3에 대한 예비 지원이있는 것처럼 보이지만 한 번만해볼 가치가 있습니다. facet syntax은 매우 간단합니다 :

예 : 또한 SolrFerret보고 할 수 있습니다

# This will return any search results for 'pancakes' 
Article.search 'pancakes' 

# This will return any facets for 'pancakes' 
Article.facets 'pancakes' 

- 나는 측면 검색을 지원하는 생각 둘 다. https://github.com/fortytools/forty_facets

+0

고맙습니다. 생각하는 스핑크스가 내가 원하는 것을 정확하게 제공하는 것 같습니다. – gjb

+0

도와 드리겠습니다! 그것은 당신 자신을 굴리는 것보다 훨씬 좋네요. (거기에 많은 문서가 있다는 것은 말할 것도 없습니다.) – jerhinesmith

4

faceted search을 살펴보십시오.

건배;

+0

감사합니다, 나는 필터링 이러한 유형의 용어가 있어야합니다 알고 : – gjb

0

비록 완전히 대답 할 수는 없지만이 "양식"또는 부분을 아약스로 업데이트하는 것이 좋습니다. Ryan은 railscast 43을 통해 작동 방식에 대한 몇 가지 아이디어를 얻을 수 있었지만 jquery와 rails로 모든 멋진 작업을 수행하는 방법을 연구 할 수있었습니다 .3.

+0

감사합니다. 양식의 일부가 이미 AJAX를 사용하여 업데이트되고 있습니다. 내 질문은 처음에 필터 개수를 얻는 방법입니다. – gjb

0

나는 외부 서비스/deamons에 의존하지 않는 액티브 기반 필터링 및면 계산을위한 보석을 썼다.