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 种可能的搜索方法,并且想知道如何对其应用分页。

任何帮助都会很棒,谢谢。

4

1 回答 1

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对象进行分页。

希望这可以帮助!

于 2012-04-07T10:03:56.827 回答