Rails - Membuat pagination

alfa6661
- February 05, 2016
0 (0 votes)
Rate :
Cara membuat pagination menggunakan gem kaminari pada Ruby On Rails

Pagination?

Pagination adalah suatu cara untuk menampilkan data yang banyak kedalam beberapa halaman, atau dengan kata lain pagination membatasi agar tidak terlalu banyak data yang akan ditampilkan dalam satu halaman. 

Pagination akan menjadi sangat penting jika kita memiliki banyak data. Dengan menampilkan banyak data sekaligus dalam satu waktu, hal itu akan memperlambat proses pengambilan data dari database dan menyebabkan aplikasi menjadi lambat.

Pada tutorial kali ini, kita akan membahas bagaimana membuat pagination dengan menggunakan Ruby On Rails. Untuk membuat pagination dalam aplikasi rails, ada beberapa gem yang bisa kita gunakan, salah satunya adalah Kaminari.

Konfigurasi

Untuk mulai menggunakan kaminari, kita harus menambahkan gem kaminari kedalam Gemfile kita. Buka Gemfile kemudian tambahkan baris kode berikut ini:

gem 'kaminari'

Kemudian jalankan perintah bundle install untuk menginstall gem.

bundle install

Contoh

Kita akan menggunakan table sederhana untuk menunjang tutorial ini, katakanlah table books.

Kolom Tipe Data
id Integer Primary key
title String

Selanjutnya, kita akan membuat model Book. Jalankan perintah dibawah ini untuk membuat model Book.

rails g model Book title
rake db:migrate

Setelah itu, kita memerlukan data yang banyak untuk mengisi table books diatas. Buka file db/seeds.rb lalu tambahkan kode berikut ini:

(1..100).each do |i|
  	Book.create(title: "Title #{i}")
end

Kemudian jalankan perintah rake db:seed pada console untuk menambahkan data.

rake db:seed

Dengan kode diatas, kita telah berhasil menambahkan 100 data pada table.

Controller & View

Langkah selanjutnya kita perlu membuat controller dan view untuk menampilkan data buku.

rails g controller Books index

Kode diatas akan menghasilkan controller dan view yang kita perlukan.

Sekarang, buka controller Books (app/controllers/books_controller.rb), kemudian modifikasi seperti ini:

class BooksController < ApplicationController
  def index
	@books = Book.page(params[:page]).per(10)
  end
end

Seperti yang kita lihat, kode diatas merupakan salah satu tahap untuk kode pagination kita. Method page akan menunjukkan sedang berada dalam page mana kita berada. Sedangkan method per akan mengatur berapa banyak data yang akan ditampilkan per halamannya.

Kemudian modifikasi view index (app/views/books/index.html.erb)

<h1>Books</h1>
<hr />
<% @books.each do |book| %>
  <p><%= book.title %></p>
<% end %>
<hr />
<%= paginate @books %>
<%= page_entries_info @books %>

paginate helper berfungsi untuk merender link pagination. dan page_entries_info berfungsi untuk menampilkan informasi dari entri halaman. Hal ini sangat membantu untuk mengetahui berapa banyak item yang ada dalam daftar.

Berikut adalah hasil dari kode diatas.

Computer science education cannot make anybody an expert programmer any more than studying brushes and pigment can make somebody an expert painter

– Eric S. Raymond

Have a better explanation?

If you have comments about this post. Please write your comments below

No comments associated with this article