Struktur Code Aplikasi
Berikut penjelasan struktur aplikasi yang ada di rails 7 :
app
models: Tempat untuk semua Model. Model berinteraksi dengan database dan berisi logika bisnis aplikasi. Biasanya setiap model merepresentasikan tabel dalam database.
Contoh: app/models/user.rb (Model untuk entitas pengguna)
controllers: Tempat untuk semua Controller. Controller menangani permintaan dari browser, memprosesnya, dan merespon dengan menampilkan View yang sesuai.
Contoh: app/controllers/users_controller.rb
views: Menyimpan semua View. View adalah template yang akan dikirimkan ke pengguna sebagai respons HTML (atau format lainnya). Rails 7 mendukung template berbasis HTML ERB, Haml, Slim, dan lainnya.
Contoh: app/views/users/index.html.erb
helpers: Modul yang berisi metode-metode pembantu untuk View, seperti fungsi format tanggal atau pembuatan link dinamis.
javascript: Rails 7 menggunakan integrasi dengan Import Maps atau Webpacker untuk mengelola berkas JavaScript. Biasanya JavaScript untuk front-end ditempatkan di sini.
Contoh: app/javascript/application.js
channels: Folder ini digunakan untuk ActionCable, yang digunakan untuk implementasi WebSockets dalam Rails, misalnya untuk aplikasi real-time seperti chat.
mailers/: Digunakan untuk mengelola template dan logika pengiriman email.
assets/: Berisi file statis seperti gambar, CSS, dan JavaScript. Rails 7 menggunakan konfigurasi yang lebih modern, dan file statis bisa dikelola dengan berbagai tool, termasuk Sprockets atau Webpack.
config
routes.rb : Mendefinisikan semua rute URL yang tersedia dalam aplikasi, menghubungkannya dengan controller yang tepat.
environments : Terdapat konfigurasi terpisah untuk lingkungan development, test, dan production.
database.yml : Mengatur koneksi ke database.
db
migrate/: Folder ini berisi migration file, yaitu file untuk membuat atau mengubah struktur database. Rails menggunakan ActiveRecord untuk manajemen migration, yang memungkinkan modifikasi database secara version-controlled.
Contoh: db/migrate/20241007123456_create_users.rb
seeds.rb: File yang digunakan untuk memuat data awal atau contoh ke dalam database.
lib
Folder ini biasanya berisi modul atau library yang digunakan secara global dalam aplikasi. Biasanya digunakan untuk code yang tidak cocok masuk ke dalam model, controller, atau helper.
test/spec
Folder ini digunakan untuk menyimpan tes unit, tes fungsi, dan tes integrasi untuk aplikasi Rails.
bin
Berisi script yang dapat dieksekusi, seperti rails, rake, dan script untuk proses server.
Gemfile
File ini berisi daftar semua gem (library Ruby) yang diperlukan oleh aplikasi. Ketika menjalankan bundle install, gems ini akan diunduh dan dipasang.
log
Semua log aplikasi tersimpan di sini, baik untuk development, test, atau production environment.
public
Berisi file statis publik seperti gambar, favicon, atau file HTML statis yang dapat diakses langsung tanpa melalui controller.
Membuat Controller dan View
Sebuah project Rails, minimalnya harus memiliki sebuah controller dan sebuah view.
Untuk membuat controller dan view kita bisa memanfaatkan generator yang telah disediakan oleh Rails.
rails g controller Home index
Ini artinya yang dilakukan generator Rails membuat controller home_controller.rb
sedangkan pada view generator otomatis membuat folder baru pada bagian views dengan nama home
jika ingin melakukan perubahan , kita bisa rubah di
learn_rails_7/rails7_app/app/views/home/index.html.erb
kemudian method route terletak di config/routes.rb
Pada browser masukkan url http://localhost:3000/home/index pada web browser.