티스토리 뷰
안녕하세요 강정호 입니다. 오늘은 게시물 페이징 처리를 해보겠습니다.
페이징처리 Gem file
페이징 처리를 하기 위해서는 2가지 Gem 파일이 필요합니다.
# 페이징을 할 수 있게 해주는 젬파일
gem 'will_paginate', '3.1.0'
gem 'bootstrap-will_paginate', '0.0.10'
will_paginate Gem : 이것의 역할은 페이징을 하는 메서드를 미리 구현해 놓았습니다. 그래서 페이지 번호, 한 페이지 당 게시물 수를 파라메터로 넘기면 View 페이지에서 페이징 처리가 될 수 있도록 해주는 라이브러리 입니다.
bootstrap-will-paginate Gem : 이것의 역할은 페이징 한 것을 View에서 보기 좋게 UI화 하는 것입니다. 그래서 페이지 번호를 누를 수 있고 화살표가 보여집니다.
UserController
class UsersController < ApplicationController
def index
@users = User.paginate(page: params[:page], per_page: 5)
# @users = User.all
end
기존에는 User.all을 이용해서 모든 User 객체를 받아왔습니다. 하지만 이번에는 paginate라는 메서드를 사용하여 페이징 처리를 하였습니다.
필요한 파라메터는
1) page : 페이지 번호
2) per_page : 한 페이지 당 게시물 수
사용자 뷰 페이지
<h1 align = "center">All Alpha Bloggers</h1>
<div align="center">
<%= will_paginate %>
<%= @users.each do |user| %>
<ul class="listing">
<div class="row">
<div class = "well col-md-4 col-md-offset-4">
<li><%= link_to gravatar_for(user), user_path(user) %></li>
<li>
<%= link_to user.username, user_path(user) %>
</li>
<li>
<small><%= pluralize(user.articles.count, "article") if user.articles %></small>
</li>
</div>
</div>
</ul>
<%end %>
<%= will_paginate %>
</div>
위와 같이 Controller로 부터 받은 @users 객체를 will_paginate 라는 것을 이용하여 페이징 처리를 합니다.
게시물도 페이징처리를 다음과 같이 하였습니다.
UserController
def show
@user = User.find(params[:id])
@user_articles = @user.articles.paginate(page: params[:page], per_page: 5)
end
사용자 뷰페이지
<h1 align="center">Welcome to <%= @user.username %>'s page</h1>
<div class="row">
<div class="col-md-4 col-md-offset-4 center">
<%= gravatar_for @user, size: 150 %>
</div>
</div>
<h4 align="center"><%= @user.username %>'s articles</h4>
<div align = "center">
<%= will_paginate @user_articles %>
</div>
<%= render 'articles/article', obj: @user_articles %>
<div align = "center">
<%= will_paginate @user_articles %>
</div>
결과물은 다음과 같습니다.
'Back-end' 카테고리의 다른 글
[루비온레일즈] 응답처리 (0) | 2019.01.10 |
---|---|
[루비온레일즈] nav바에 로그인, 로그아웃 링크 처리하기 (0) | 2019.01.10 |
[루비] 루비 프로그래밍 언어 요약 1 (1) | 2019.01.09 |
[루비] RSpec 단위테스트(작성중) (0) | 2019.01.08 |
[루비] yield와 %w의 쓰임에 대해서 (0) | 2019.01.08 |
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
- Total
- Today
- Yesterday
링크
TAG
- GIT
- 내년은 빡세게!!
- 도커
- front
- 항해솔직후기
- github
- push_back
- Spring boot
- Use case
- 유즈케이스
- 파라메터
- 깃
- 월급쟁이부자들
- resize
- docker
- 재테크공부
- 2023년
- ```````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````````
- 폭포수
- Inception
- 월부닷컴
- 부동산공부
- 깃허브
- 개발자 회고
- 관계대수
- 항해플러스백엔드
- 열반스쿨기초반
- 인셉션
- pop_back
- 항해플러스후기
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
글 보관함