2012-04-07 6 views
1

я следующий кусок кода:Разбивка на несколько поисков

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 

То, что я хочу сделать, это есть все эти результаты постраничной. Теперь я знаю, как постраничной из особой категории, как я сделал здесь:

def index 
    user_relation = case params[:username].present? 
    when true then User.where("username LIKE ?", "#{params[:username]}%") 
    else User 
    end 
    @users = user_relation.paginate :page=>params[:page], :order => 'created_at desc', :per_page => 10 
end 

Но контроллер игры имеет 5 возможных методов поиска и было интересно, как я хотел бы применить нумерацию страниц к нему.

Любая помощь будет большой, спасибо.

ответ

0

Это должно быть возможно, добавив результаты поиска в один и тот же массив и разбивая на них этот массив.

нравится:

def index 
    @games = Array.new() 
    @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 

, а затем просто отформатирует @games объект.

надеюсь, что это поможет!

Смежные вопросы