紳士なブログ

紳士すぎてすみません

DBの内容を複数ページに分けて表示する

  • paginateメソッドを使えば、簡単にページ送りを実現できます。たとえば、テーブルの各レコードをページ送りで分割することを考えます。


  • 次のように指定すると、entriesテーブルの各レコードを作成順(:order => "created_on")でページ送りすることになります(デフォルトでは、1ページあたり10件のレコードがロードされます)


@entry_pages, @entries = paginate(:entries, :order => "created_on")


  • この場合、@entry_pagesにはページ送りの処理を担うPaginatorオブジェクトが、@entriesにはEntryオブジェクトの配列が格納されます。


  • Paginatorオブジェクトは、現在のページ番号や全体のページ数などの情報を保持するものです。


  • リクエストされたページ番号は、params[:page]クエリパラメータで指定されることになっています。そのため、ユーザリクエスト内にはparams[:page](URlの末尾に?page=n)というクエリパラメータが必要となります。


  • 参考:『Rails レシピブック』p.112