Struktur MVC & Convention over Configuration
Penjelasan
Rails mengikuti pola arsitektur MVC (Model-View-Controller). **Model** (di `app/models/`) menangani data dan logika bisnis, biasanya berhubungan langsung dengan tabel database lewat Active Record. **View** (di `app/views/`) adalah template tampilan yang dirender ke HTML, ditulis dengan ERB. **Controller** (di `app/controllers/`) menjadi penghubung — menerima request, memanggil model, lalu menentukan view mana yang dirender. Prinsip "Convention over Configuration" berarti Rails menebak banyak hal dari penamaan: model `Catatan` otomatis dipetakan ke tabel `catatans`, controller `CatatanController` otomatis mencari view di folder `app/views/catatan/`. Ini kontras dengan framework yang lebih eksplisit (misalnya Express.js atau Actix) di mana kamu harus mendaftarkan setiap koneksi secara manual — Rails mengurangi boilerplate asalkan kamu mengikuti konvensi penamaannya.
Contoh Konsep
app/
models/
catatan.rb # class Catatan < ApplicationRecord
views/
catatan/
index.html.erb # otomatis dicari untuk action index
show.html.erb
controllers/
catatan_controller.rb # class CatatanController < ApplicationController
Praktikum
Lengkapi definisi controller dan model sesuai konvensi penamaan Rails untuk resource `catatan`.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Kalau bingung kenapa Rails tidak menemukan view atau controller-mu, periksa dulu penamaan file dan class — hampir selalu masalahnya ada di situ, bukan di logic. Jalankan `rails routes` untuk melihat semua route yang sudah terdaftar sesuai konvensi.