Home » gem » 「will_paginate」でページネーション rails5

「will_paginate」でページネーション rails5

will_paginateというgemでは、

ページネーションの機能を適用できるgemになっています。

 

railsプロジェクトを作成して

それにwill_paginateのgemをインストールして

ページネーションしていこうとおもいます。

Railsプロジェクト作成とwill_paginateをインストール

railsプロジェクトを作成します。

$ rails new paginate_app

paginate_appディレクトリに移動します。

$ cd paginate_app

scaffoldで基礎データを作ります。

$ rails g scaffold post title:string text:text

マイグレーションファイルを実行します。

$ rails db:migrate

データベースの基礎データを作成していきます。
db\seeds.rbファイルに基礎データを設定するコードを記述します。

100.times do |i|
    Post.create(
        title: "タイトル#{i}",
        text: "テキスト#{i}"
    )
end

seeds.rbファイルに記述されたコードを実行します。

$ rails db:seed

will_paginateをインストール

Gemfileにgemを追加する

gem 'will_paginate', '~> 3.1', '>= 3.1.6'

bundleでrailsプロジェクトにインストールします。

$ bundle install

Rails、Sinatra、Merb Webアプリケーションで
will_paginateを使用することができます。

will_paginateでページネーション

コントローラーでwill_paginateを
使用するための設定をします。

通常の場合は、下記のようにallメソッドで
全てのデータをとってきていますが、

def index
  @posts = Post.all
end

allメソッドではなく、

pageメソッドでページネーションを
使用できるように設定します。

  def index
    @posts = Post.page(params[:page])
  end

コントローラーの設定を済ませたので、
次はビューでページネーションの設定をしていきます。

index.html.erbでページネーションを追加します。
ページネーションを設置したい場所に下記のコードを記述します。

<%= will_paginate @posts %>

参考文献


, ,

コメントを残す

%d人のブロガーが「いいね」をつけました。