ページネーションの追加 Ruby on Rails

$ bundle install

挿入したい部分に<%= will_paginate %>を挟む

app/views/users/index.html.erb

<% provide(:title, 'All Users') %>
<h1>ユーザー一覧</h1>
<div class="col-md-10 col-md-offset-1">
<%= will_paginate %>
<table class="table table-condensed table-hover" id="table-users">
<thead>
<tr>
<th><%= User.human_attribute_name :name %></th>
</tr>
</thead>
<% @users.each do |user| %>
<tr>
<td><%= link_to user.name, user %></td>
</tr>
<% end %>
</table>
<%= will_paginate %>
</div>

paginateメソットの適用

app/controllers/users_controller.rb
def index
@users = User.paginate(page: params[:page])
end

paginateではキー:pageで値がページ番号のハッシュを引数にとります。
User.paginate:pageパラメータに基づき、データベースからひとかたまりのデータを取得します。
(デフォルトでは30件で、設定や個別に指定可能です)

コメント

タイトルとURLをコピーしました