2012-04-02 2 views
0

사용자 검색 기능이 하나 뿐이므로 현재 사용자 테이블에 페이지 매김 기능이 있습니다.다음 텍스트에 페이지 매김을 추가하십시오.

하지만 이제는 게임 테이블에 페이지 매김을 추가하고 싶지만 게임에 5 가지 검색 기능이 있으므로 구현 방법을 모르겠습니다. 다음 컨트롤러 메서드에 페이지 매김을 추가하는 방법에 대해 궁금합니다.

def index 
     @games = Game.gamsearch(params[:gamsearch]) 
     @games = Game.consearch(params[:consearch]) if params[:consearch].present? 
     @games = Game.gensearch(params[:gensearch]) if params[:gensearch].present? 
     @games = Game.where("game_name LIKE ?", "#{params[:game_name]}%") if params[:game_name].present? 
     @games = Game.where("console = ?", params[:console]) if params[:console].present? 

    end 

답변

0

나는 당신이 당신의 게임 클래스에서 액티브 관계를 반환하고 (난 당신이에 의해 condidtions AND 연산자를 결합하려는 생각)을 체인 범위 또는 방법을 사용한다고 생각 :

class Games 
    scope gamsearch, lambda { |search_param| your_conditions } 
    scope consearch, lambda { |search_param| your_conditions } 
    scope gensearch, lambda { |search_param| your_conditions } 
    scope game_name, lambda { |game_name_param| where("game_name LIKE ?", "#{game_name_param}%") } 
    scope console, lambda { |console_param| where("console = ?", console_param) } 
end 


def index 
    scope = Game.gamsearch(params[:gamsearch]) 
    scope = scope.consearch(params[:consearch]) if params[:consearch].present? 
    scope = scope.gensearch(params[:gensearch]) if params[:gensearch].present? 
    scope = scope.game_name(params[:game_name]) if params[:game_name].present? 
    scope = scope.console(params[:console]) if params[:console].present? 
    @games = scope.paginate 
end 
+0

내가 범위를 사용하여 시도를하지만, 이미 정의되어 있음에도 불구하고 정의되지 않은 메서드 매김을 유지합니다. – user1222136

관련 문제