Arel 관계 (예. 쿼리) 결과에 대한 첫 번째 참조에 유유히-실행됩니다, 그래서 당신은 당신이 검색 개체를 만들 수 있습니다 것을 발견하고 양식에 전달한다 , 어디서나 .result 메소드를 참조하지 않는 한 db를 호출하지 않아도된다.
// in your controller
my_query = MyModelClass.where{ id.gt(0) }
@q = my_query.search(params[:q])
// in your view
search_form_for(@q, (...other options...))
이들의 모든
은 DB 쿼리를 실제로 수행 할 수 트리거 :
는
- @q.results.each do |result|
- for result in @q.results
- @q.results.count
- @q.results.to_a
- @q.results.size
// ....etc
그러나 너무 오래 만 양식의 검색 객체를 사용할 때, 그것은 실행되지해야합니다.
물론 콘솔에서 테스트 할 경우 행 끝에 ;nil
을 입력해야합니다. 그렇지 않으면 콘솔에서 마지막으로 계산 된 것이 인쇄되어 쿼리가 실행됩니다!
예, github 저장소에서 문제를 해결했지만 답변을 추가하지 않았습니다. 감사합니다. :-) – mongeta