2009-08-12 6 views
1

사용자가 만든 문서를 저장하는 응용 프로그램이 있습니다. 이 문서에는 작성자, 작성 날짜가 있습니다. 저자는 역할을 할 수 있습니다. 또한 주어진 문서에 키워드 태그가 추가 될 수 있습니다. 데이터베이스에는 ~ 16,000 개의 문서가 있으며, 사용자는이 정보의 어떤 조합으로도 문서를 볼 수 있습니다. 예를 들어, 주어진 저자의 모든 문서를 보거나 주어진 시간 창에 게시하거나이 역할의 저자 등 (및 이들의 조합)을 참조하십시오.인덱스 페이지에서 가능한 여러 쿼리 조건을 처리하는 가장 좋은 방법

이것을 구현하는 가장 좋은 방법이 있습니까? 일반적으로 params 해시에서 원하는 조건을 전달한 다음 복잡한 if ... elsif ... else ...를 사용하여 전달 된 조건을 다른 Model.find 호출로 직접 디코딩합니다. 또는 비슷한 if 조건을 사용하여 적절한 SQL 조건 구문을 구성한 다음 단일 찾기 호출을 사용합니다.

이 두 가지 모두 해킹처럼 보이고 명명 된 범위를 사용하여 더 나은 방법이 있어야하지만 순열을 처리 할 수있는 확실한 방법을 찾을 수는 없습니다.

답변

0

는 만 Model.find에 한 줄의 코드가 필요합니다. 조건부 논리를 사용하여 복수 find 호출을 작성하는 대신 조건부 논리를 사용하여 :conditions 해시를 채우고 find 호출로 전달됩니다.

관련 문제