Belajar Ruby on rails and Sqlite3 Part 3

Toriq Ziadi Rachman
5 min readSep 16, 2018

--

Background

project dari part 1 yang menggunakan scaffold secara automatis ,lalu bagimana jika kita membuat secar manual ?apakah bisa ?saya pun pertama juga curiga ,eh ternyata juga bisa kita membuat nya wkwk ,Berikut penjelasanya :

$ rails generate model buku

Controller

  1. index: menampilkan seluruh data pada tabel
  2. show: menampilkan data sesuai dengan parameter
  3. new: menampilkan halaman tambah data
  4. edit: menampilkan halaman edit data
  5. create: proses menyimpan data
  6. update: proses mengubah data
  7. destroy: proses menghapus data
$ rails generate controller buku$ rails generate controller buku index

Okay dari awal sudah kita bahas dan kita sebut menggunakan migrate di ROR,menurut kesimuplan saya,eh bukan kesimpulan saya tapi reference dari ROR .Migration adalah fitur di Ruby yang dibuat untuk membuat atau mengubah tabel di database secara mudah. Migration ini merupakan salah satu yang akan dihasilkan ketika melakukan scaffolding.

$ rails generate migration CreateBuku$ rake db:migrate

oke,kali ini saya akan memberikan contoh membuat generate MODEL di ROR jalankan perintah berikut.

Gambar 6 ,Hasil generate Model

Perintah diatas akan membuat sebuah file ruby dengan nama buku. untuk idBuku, judulBuku, namaPengarang, penerbit dan tahunTerbit merupakan kolom pada basis data yang akan digenerate nantinya. Jika ingin melihat strukturnya ada pada folder db/migrate. Untuk membuat tabel pada basis data silahkan jalankan perintah rake db:migrate.

Gambar 7 ,play db:migrate

Setelah selesai ter generate kali ini silahkan temen temen silahkan buka file buku_controller.rb yang berada di folder app/controller

Gambar -8 File controller

silahkan tambah kan sintak seperti ini di dalam nya 1 hingga 49 line:

Gambar 9-sintak controller -1
Gambar 10 ,Sintak controller -2

Penulis akan menjelaskan beberapa fungsi sintak diatas.

  • fungsi dari def adalah untuk mendeklarasikan sebuah function atau fungsi pada ruby.
  • @buku merupakan variabel yang diisi dengan nilai data seluruh buku. Data tersebut diperoleh dari Buku.all.
  • Pada bagian method show kita akan menampilkan 1 object saja. Untuk mengambil object berdasarkan id maka kita gunakan sintak Buku.find(params[:id]).
  • Method new berfungsi untuk redirect page baru sekalian membuat sebuah object baru.
  • Method create berfungsi untuk melakukan penyimpanan data pada basis data. Jika data telah tersimpan maka akan dilakukan redirect ke index page.
  • Method edit sama seperti method new hanya saja, method edit mengambil berdasarkan id tanpa membuat object baru.
  • Method Update sama seperti method create, berbeda pada saat melakukan pengambilan object berdasarkan id.
  • Method destroy berfungsi untuk menghapus data. Dilakukan pengambilan object terlebih dahulu baru dilakukan penghapusan data.

Okay panjang juga iya,setelah itu lanjut ke bagian view .View pada ROR dapat dilakukan import antar page,kita akan membuat default page terlebih dahulu,di mulai dari navigation.erb

Gambar 11,Navigation.erb source code

source code di atas untuk navigator sebuah web aja. selanjutnya kita membuat sebuah form, buat sebuah file form.erb lalu masukkan sintak berikut

Gambar 12,Source code Form.erb

Penjelasan dari source code di atas :

  • <%= form_for(@buku) do |buku| %> merupakan sintak ruby, sintak ini berfungsi untuk melakukan render sebuah object @buku yang telah di deklarasikan pada controller.
  • <%= buku.label :ID_Buku %> berfungsi sebagai label
  • <%= buku.text_field :idBuku %> berfungsi sebagai text field yang nantinya dapat diinput oleh user.
  • <%= buku.submit :Save %> berfungsi sebagai button agar dapat disubmit.

Kemudian temen temen silahkan buatlah file new.html.erb dan edit.html.erb di dalam folder app/views/toko kemudian masukkan sintak.

gambar 13 render

nanti isi di dalam file edit.html.erb sintak seperti ini

Gambar 14 render to form

Maaf karena saya habis ganti error crash windows jadi saya bikin project lagi tetapi hampir sama cuma saya inisialisasi kan ke toko saja iyaaa…

Source code diatas berfungsi untuk melakukan render terhadap page navigation dan form yang telah kita buat tadi atau bahasa kerennya kita include pagenya. Oke selanjutnya kita akan membuat sebuah page detail. Sama seperti tadi buat sebuah file show.html.erb dan masukkan source code berikut.

gambar 15 ,render to page detail

nah source code tersebut sama seperti dengan form pada page new dan edit hanya berbeda pada setiap text field akan disable berikut perintah disable ada di disabled: true. Dan yang terakhir adalah file index.html.erb merupakan page awal yang akan berisi tentang data. Masukkan source code berikut ini:

gambar 16.index render page

Sedikit penjelasan dari Source code atau codingan diatas.

  • <%= link_to 'Tambah Data' %> berfungsi sebagai button tambah data yang akan melakukan redirect page ke new page.
  • @tokos.each do |toko| berfungsi untuk melakukan render data pada tabel html tokos merupakan variabel yang terdapat di controller yang berisi data - data toko.
  • <%= toko.idBarang %> berfungsi untuk menampilkan data yang berbentuk array ke dalam tabel - tabel html.
  • <%= link_to 'Detail' %> merupakan sebuah button detail untuk menampilkan detail data.
  • <%= link_to 'Edit' %> merupakan sebuah button edit untuk redirect ke page edit.
  • <%= link_to 'Delete' %> meruapkan sebuah button delete untuk menghapus data. sebelum menghapus akan ada muncuk tampilan info validasi penghapusan data.

Berikut hasil dari Source code website nya :

Gambar 16 ,Tambah data form
Gambar 17 ,Lihat detail
Gambar 18,page edit render
Gambar 19,Index Home

Okay selesai sekian terima kasih banyak hahahaha

author : Toriqzr

grup fb : Forum Keluarga Programmer indonesia

--

--

No responses yet