Controller merupakan sebuah class yang berfungsi menghubungkan antara model database dengan view. Controller juga berfungsi mengarahkan url yang masuk dengan view tujuan, serta menangkap request seperti POST dan GET. Fungsi controller banyak di adopsi oleh framework MVC seperti Laravel, dan Codeigniter. Model View Controller ini juga di adopsi oleh Ruby On Rails, sehingga memudahkan bagi para programmer yang sudah terbiasa dengan Laravel ataupun Codeigniter untuk mempelajarinya.
Untuk membuat controller dan view di Ruby On Rails, bisa menggunakan 2 cara yaitu dengan bantuan CMD, atau membuat secara manual. Berikut kami paparkan 2 cara tersebut :
1. Cara pertama menggunakan CMD
Berikut cara membuat controller dan view menggunakan CMD1. Buka dan arahkan CMD anda ke folder utama project
2. Ketikkan perintah
"Welcome" merupakan nama controller yang akan dibuat dan "index" merupakan nama viewnya. Nantinya akan muncul controller baru di folder app -> controllers -> welcome_controller.rb, dengan kode berisi.
rails generate controller Welcome index
welcome_controller.rb
Serta view akan baru akan muncul pada app -> views -> welcome -> index.html.erb. Folder welcomes otomatis dibuat menyesuaikan nama controller. Isi default dari view index ini seperti berikut.
class WelcomeController < ApplicationController
def index
end
end
index.html.erb
Ketika controller selesai dibuat, akan muncul get baru pada config -> routes.rb, dimana get ini menafsirkan untuk mengarahkan url "localhost:3000/welcome/index" untuk menjalankan controller yang tadinya dibuat.
<h1>Welcome#index</h1>
<p>Find me in app/views/welcome/index.html.erb</p>
routes.rb
Rails.application.routes.draw do
get 'welcome/index'
# For details on the DSL available within this file, see https://guides.rubyonrails.org/routing.html
end
2. Cara manual
Berikut cara manual untuk membuat controller dan view di Ruby on Rails :1. Buat file baru dengan nama + extensi ".rb" misalnya controller Home, maka buat file baru di app -> controllers -> home_controller.rb. Kemudian isi kodenya dengan code di bawah :
home_controller.rb
class HomeController < ApplicationController
def index
end
end
Perhatikan kode "class HomeController < ApplicationController" terdapat nama class yaitu HomeController, nama ini harus sesuai dengan nama file controller yang dibuat, jika nama controller home_controller.rb kemudian nama kelasnya dituliskan hanaya "class Home < ApplicationController", nantinya akan terjadi error.
Serta perlu diperharikan untuk menyertakan nama+_controller.rb pada saat membuat controller, sebab telah kami uji coba membuat controller dengan nama "home.rb" dan hasilnya program tidak membaca file controller tersebut. Begitu
2. Buat folder baru di view dengan nama "home" kemudian buat file index baru di dalamnya nantinya akan tampak seperti ini app -> views -> home -> index.html.erb
Isi kode html sesuai dengan kode yang di inginkan misalnya.
3. Tahap selanjutnya menambah get pada routes sehingga ketika url "localhost:3000/home/index" diakses, program akan mengarahkan ke controller home. Caranya tambahkan tag get 'home/index' seperti pada gambar.
<h1>Home#index</h1>
<p>Find me in app/views/home/index.html.erb</p>
Saran :
Ketika sudah mengetahui cara membuat controller secara manual, selanjutnya direkomendasikan untuk membuat controller menggunakan cara pertama untuk pembuatan project-project selanjutnya. Selain karena mempermudah, dan menyingkat waktu pembuatan, cara ini juga menghindarkan dari kesalahan. Permasalahan yang biasa muncul seperti nama file tidak sesuai, nama kelas tidak sesuai, hingga nama folder tidak sesuai.
Perhatian :
Untuk mengatur controller mana yang ingin dijalankan pertama kali ketika aplikasi dibuka silahkan tambahkan root 'welcome#index' pada routes, dimana welcome#index adalah nama view dari controller yang ingin dijalankan.