2013-08-26 2 views
0

질문 모델 has_many Answers. 아래의 줄은 얼마나 많은 질문에 답이 있는지를 계산하고 DESC 순서로 답의 양에 따라 순서를 매 깁니다. 그래서, 대부분의 질문에 먼저 답했습니다..ransack (params [: q])는 배열에서 작동합니다.

@search = Question.find(:all, 
          joins: :answers, 
          select: ' "questions".*, count("answers".id) as answers_count', 
          group: '"questions".id', 
          order: "answers_count DESC").ransack(params[:q]) 

@questions = @search.result 

나는 또한 람탁 보석을 사용합니다. ransack을 검색하려면 @search 배열에 .ransack (params [: q])를 추가하고이 배열에 result 메서드를 호출해야합니다. 비록 이것이 가능할지라도 나는 그렇지 않습니다.

샅샅이 뒤지기 시작하면 무엇부터 검색 할 수 있습니까?

답변

1

먼저 샅샅이 뒤지고 그 결과를 연결해야합니다.

ransack_result = Question.ransack(params[:q]).result 

@questions = ransack_result.find(:all, 
           joins: :answers, 
           select: ' "questions".*, count("answers".id) as answers_count', 
           group: '"questions".id', 
           order: "answers_count DESC")