fc2ブログ

Ruby on RailsでWebサイト公開!に挑戦中

レンタルサーバーでWebサイトを公開すべく、Ruby on Railaの勉強をする日々を語ります。

PREV | PAGE-SELECT | NEXT

≫ EDIT

ユーザー一覧をページ単位に表示

ブートストラップのページ化スタイルを使ってユーザー一覧をページ単位で表示できるようにします。


以下、「Ruby on Rails Tutorial」の9章を参考に行います。
参考資料ページの6.参照

●gemをインストール

$ vi Gemfile

gem 'will_paginate', '3.0.4'
gem 'bootstrap-will_paginate', '0.0.9'


$ bundle install


●ユーザー一覧のビューをページ化

$ vi app/views/users/index.html.erb

下記のように最初と最後にページ用リンクを設定するため<%= will_paginate %>を記述します。


<% provide(:title, 'ユーザー一覧') %>
<h1>ユーザー一覧</h1>

<%= will_paginate %>

<ul class="users">
<% @users.each do |user| %>
<li>
<%= link_to user.name, user %>
</li>
<% end %>
</ul>

<%= will_paginate %>


・will_paginateメソッドは、@userオブジェクトを自動で探し、他のページを表示するためのページリンクを表示します。
ただし、現時点では@userオブジェクトには"User.all"で取得した全ユーザー情報が保持されているので、paginateメソッドを使ってページ単位に設定する必要があります。

●Usersコントローラのindexアクションをページ化

$ vi app/controllers/users_controller.rb

def index
@users = User.paginate(page: params[:page], :per_page => 5)
end


デフォルトは、1ページ当りの表示数が30なので、5に変更しています。

●動作確認

5人以上のユーザーと登録すると、ページ一覧がページ化されて表示されるようになりました。

ページの上下にページ用のリンクが表示されました。

| アプリ作成 | 10:39 | comments:0 | trackbacks:0 | TOP↑

COMMENT















非公開コメント

TRACKBACK URL

http://hbnist76.blog.fc2.com/tb.php/240-59c93b80

TRACKBACK

PREV | PAGE-SELECT | NEXT