[Rails5] kaminari는 뭐야?
소개
Rails의 공부로서 gem 주위를 만져 보는 기획입니다.
이번에는...
번개
시도해 보겠습니다.
무슨 젬이야?
간단하게 말하면 페이지 네이션 기능을 간단하게 추가할 수 있는 gem이라고 하는 것.
유명한 커리어이므로 제대로 사용법을 기억합니다.
검증 환경
다음 환경에서 실시했습니다.
[client]
・MacOS Mojave(10.14.2)
・Vagrant 2.2.2
・VBoxManage 6.0.0
[virtual]
・CentOS 7.6
・Rails 5.2.2
・ruby 2.3.1
참고까지.
kaminari 도입
1.gem 설치
사전에 Rails 공부용으로 작성한 프로젝트로 진행합니다.
각 MVC는 적당히 게시판 앱을 상정하여 Posts 컨트롤러 등을 생성 완료되었습니다.
(index, show, edit의 빈 페이지를 볼 수있는 정도)
$ rails g model post
$ rails g controller posts index show edit
그 전제하에 Gemfile에 다음을 추가한다.
Gemfile# kaminari
gem 'kaminari'
추가하면 설치.
$ bundle install
-----------
Fetching kaminari-core 1.1.1
Installing kaminari-core 1.1.1
Fetching kaminari-actionview 1.1.1
Installing kaminari-actionview 1.1.1
Fetching kaminari-activerecord 1.1.1
Installing kaminari-activerecord 1.1.1
Fetching kaminari 1.1.1
Installing kaminari 1.1.1
-----------
→無事に完了。
2. kaminari를 사용해보기
이제 kaminari를 사용할 수있게 된 것처럼,
조속히 컨트롤러와 뷰를 조정해 봅니다.
(※DB에는 사전에 더미 데이터를 적당히 복수건 돌진하고 있습니다.)
posts_controller.rbdef index
# とりあえず基本形で表示してみる
@posts = Post.page(params[:page])
end
index.html.erb<h1>Posts#index</h1>
<p>Find me in app/views/posts/index.html.erb</p>
<table>
<thead>
<tr>
<th>name</th>
<th>content</th>
</tr>
</thead>
<tbody>
<% @posts.each do |post| %>
<tr>
<td><%= post.name -%></td>
<td><%= post.content -%></td>
</tr>
<% end %>
</tbody>
</table>
<%= paginate @posts -%>
3. 동작 확인
그럼 서버를 시작해 페이지를 보자.
표시되었습니다! 엄청 간편.
더미 데이터는 30건 돌진해 두었습니다만,
상기 처리라면 디폴트는 1 페이지당 25건이 되는 것 같습니다.
4. 좀 더 파헤쳐 보자
이것으로 소감에 들어가는 것도 맛이 없기 때문에 좀 더 만져 보겠습니다.
조속히 1 페이지당의 표시 건수를 10 건으로 변경해 보겠습니다.
posts_controller.rbdef index
# 1ページの表示を10件に絞る
@posts = Post.page(params[:page])
end
또는
post.rbclass Post < ApplicationRecord
# この方法でも1ページあたりの表示件数の調整が可能
paginates_per 10
end
그러면 이렇게 표시 건수를 제한할 수 있었습니다.
또한 원래 카미나리 자체의 설정을 조정하고,
표시 건수의 디폴트치를 변경하는 것도 가능.
$ rails g kaminari:config
create config/initializers/kaminari_config.rb
위의 명령으로 구성 파일이 생성되었습니다.
kaminari_config.rb# frozen_string_literal: true
Kaminari.configure do |config|
# config.default_per_page = 25
# config.max_per_page = nil
# config.window = 4
# config.outer_window = 0
# config.left = 0
# config.right = 0
# config.page_method_name = :page
# config.param_name = :page
# config.params_on_first_page = false
end
케이스 바이 케이스로 구분하면 좋을 것 같네요.
또 이번에는 손을 내지 않지만,
$ rails g kaminari:views default
명령으로 kaminari 템플릿이 생성됩니다.
외형을 조정하는 데 사용할 수있는 것 같습니다.
또한
$ rails g kaminari:views bootstrap
그렇다면 Bootstrap에서 적용이 가능.
또한, i18n에도 별도 대응하는 것도 가능하다.
안쪽이 깊다.
소감
간편하게 페이징을 추가할 수 있는 것은 좋네요.
일람 화면을 표시하는 시스템을 만들 기회도 꽤 많기 때문에,
꼭 활용해 갑시다.
결론
뭔가 눈치채는 점이 있으면,
지적이나 어드바이스등 받을 수 있으면 매우 도움이 됩니다!
Reference
이 문제에 관하여([Rails5] kaminari는 뭐야?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/betti/items/12bd7a587743c04f46e5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
[client]
・MacOS Mojave(10.14.2)
・Vagrant 2.2.2
・VBoxManage 6.0.0
[virtual]
・CentOS 7.6
・Rails 5.2.2
・ruby 2.3.1
1.gem 설치
사전에 Rails 공부용으로 작성한 프로젝트로 진행합니다.
각 MVC는 적당히 게시판 앱을 상정하여 Posts 컨트롤러 등을 생성 완료되었습니다.
(index, show, edit의 빈 페이지를 볼 수있는 정도)
$ rails g model post
$ rails g controller posts index show edit
그 전제하에 Gemfile에 다음을 추가한다.
Gemfile
# kaminari
gem 'kaminari'
추가하면 설치.
$ bundle install
-----------
Fetching kaminari-core 1.1.1
Installing kaminari-core 1.1.1
Fetching kaminari-actionview 1.1.1
Installing kaminari-actionview 1.1.1
Fetching kaminari-activerecord 1.1.1
Installing kaminari-activerecord 1.1.1
Fetching kaminari 1.1.1
Installing kaminari 1.1.1
-----------
→無事に完了。
2. kaminari를 사용해보기
이제 kaminari를 사용할 수있게 된 것처럼,
조속히 컨트롤러와 뷰를 조정해 봅니다.
(※DB에는 사전에 더미 데이터를 적당히 복수건 돌진하고 있습니다.)
posts_controller.rb
def index
# とりあえず基本形で表示してみる
@posts = Post.page(params[:page])
end
index.html.erb
<h1>Posts#index</h1>
<p>Find me in app/views/posts/index.html.erb</p>
<table>
<thead>
<tr>
<th>name</th>
<th>content</th>
</tr>
</thead>
<tbody>
<% @posts.each do |post| %>
<tr>
<td><%= post.name -%></td>
<td><%= post.content -%></td>
</tr>
<% end %>
</tbody>
</table>
<%= paginate @posts -%>
3. 동작 확인
그럼 서버를 시작해 페이지를 보자.
표시되었습니다! 엄청 간편.
더미 데이터는 30건 돌진해 두었습니다만,
상기 처리라면 디폴트는 1 페이지당 25건이 되는 것 같습니다.
4. 좀 더 파헤쳐 보자
이것으로 소감에 들어가는 것도 맛이 없기 때문에 좀 더 만져 보겠습니다.
조속히 1 페이지당의 표시 건수를 10 건으로 변경해 보겠습니다.
posts_controller.rb
def index
# 1ページの表示を10件に絞る
@posts = Post.page(params[:page])
end
또는
post.rb
class Post < ApplicationRecord
# この方法でも1ページあたりの表示件数の調整が可能
paginates_per 10
end
그러면 이렇게 표시 건수를 제한할 수 있었습니다.
또한 원래 카미나리 자체의 설정을 조정하고,
표시 건수의 디폴트치를 변경하는 것도 가능.
$ rails g kaminari:config
create config/initializers/kaminari_config.rb
위의 명령으로 구성 파일이 생성되었습니다.
kaminari_config.rb
# frozen_string_literal: true
Kaminari.configure do |config|
# config.default_per_page = 25
# config.max_per_page = nil
# config.window = 4
# config.outer_window = 0
# config.left = 0
# config.right = 0
# config.page_method_name = :page
# config.param_name = :page
# config.params_on_first_page = false
end
케이스 바이 케이스로 구분하면 좋을 것 같네요.
또 이번에는 손을 내지 않지만,
$ rails g kaminari:views default
명령으로 kaminari 템플릿이 생성됩니다.
외형을 조정하는 데 사용할 수있는 것 같습니다.
또한
$ rails g kaminari:views bootstrap
그렇다면 Bootstrap에서 적용이 가능.
또한, i18n에도 별도 대응하는 것도 가능하다.
안쪽이 깊다.
소감
간편하게 페이징을 추가할 수 있는 것은 좋네요.
일람 화면을 표시하는 시스템을 만들 기회도 꽤 많기 때문에,
꼭 활용해 갑시다.
결론
뭔가 눈치채는 점이 있으면,
지적이나 어드바이스등 받을 수 있으면 매우 도움이 됩니다!
Reference
이 문제에 관하여([Rails5] kaminari는 뭐야?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/betti/items/12bd7a587743c04f46e5
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
뭔가 눈치채는 점이 있으면,
지적이나 어드바이스등 받을 수 있으면 매우 도움이 됩니다!
Reference
이 문제에 관하여([Rails5] kaminari는 뭐야?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/betti/items/12bd7a587743c04f46e5텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)