0

私はホテル モデルを持っており、私たちのホームページには、ページごとに 5 にページ分割されたサイドバーに最後の 10 のホテルを表示する必要がある指名セクションがあります。will_paginate に関するいくつかのドキュメントを読みましたが、will_paginate に送信されるオブジェクトの数を制限する適切な方法がないことに気付きました。そのため、limit を呼び出しても何も達成されないため、サイドバーにはすべてのホテルが表示され、ページごとに 5 ページ付けされ、以下のコードは意図したとおりに動作しません。

@nominations = Hotel.where(winner: false).limit(10).paginate(page: params[:page], per_page: 5)

will paginate で表示されるページ数を制限する方法があるかどうか疑問に思っていましたか? そのため、それぞれに 5 つのホテルが含まれる 5 つのページがある場合でも、2 ページしか表示されません。したがって、表示されるアイテムの数を効果的に制限します。内側と外側のウィンドウ パラメータを見てきましたが、これらがこの状況に役立つとは思いません。または、誰かがこれを達成するための他の方法を持っている場合、私はすべて耳にします。

そうそう、サイドバーはページ上の他のコンテンツをはるかに超えて実行されるため、候補をページ分けする必要があります。

さらにコードが必要な場合は、叫んでください。

4

1 に答える 1

2

質問のおかげでwill_paginate のページ数を制限するには、total_entries パラメータを paginate 関数に渡すだけです。したがって、私のコードは次のようになります。

@nominations = Hotel.where(winner: false).paginate(page: params[:page], per_page: 5, total_entries: 10)
于 2012-12-05T13:56:17.077 に答える