【问题标题】:Pagination on multiple searches多次搜索分页
【发布时间】:2012-04-20 15:51:24
【问题描述】:

我有以下代码:

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

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

【问题讨论】:

    标签: ruby-on-rails search pagination


    【解决方案1】:

    这应该可以通过将搜索结果全部附加到同一个数组然后对该数组进行分页来实现。

    喜欢:

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

    希望这会有所帮助!

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-05-25
      • 2016-02-06
      • 2016-06-15
      • 2012-05-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多