Belajar Ruby on rails and Sqlite3 Part 3
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
- index: menampilkan seluruh data pada tabel
- show: menampilkan data sesuai dengan parameter
- new: menampilkan halaman tambah data
- edit: menampilkan halaman edit data
- create: proses menyimpan data
- update: proses mengubah data
- 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.
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
.
Setelah selesai ter generate kali ini silahkan temen temen silahkan buka file buku_controller.rb yang berada di folder app/controller
silahkan tambah kan sintak seperti ini di dalam nya 1 hingga 49 line:
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 sintakBuku.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
source code di atas untuk navigator sebuah web aja. selanjutnya kita membuat sebuah form, buat sebuah file form.erb
lalu masukkan sintak berikut
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.
nanti isi di dalam file edit.html.erb sintak seperti ini
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.
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:
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 :
Okay selesai sekian terima kasih banyak hahahaha
author : Toriqzr
grup fb : Forum Keluarga Programmer indonesia