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 に答える