Active Record Associations
Penjelasan
Association mendefinisikan relasi antar model, mirip foreign key di database tapi dengan API Ruby yang nyaman. `belongs_to :user` di model `Catatan` berarti setiap catatan dimiliki satu user (butuh kolom `user_id`). `has_many :catatan` di model `User` berarti satu user bisa punya banyak catatan. Untuk relasi many-to-many, Rails punya `has_many :through` — misalnya `Catatan` punya banyak `Tag` lewat tabel penghubung `catatan_tags`. Dengan association ini, kamu bisa memanggil `user.catatan` untuk mendapatkan semua catatan milik user tersebut, atau `catatan.user` untuk mendapatkan pemiliknya, tanpa menulis JOIN manual.
Contoh Konsep
# app/models/user.rb
class User < ApplicationRecord
has_many :catatan
has_many :catatan_tags, through: :catatan
end
# app/models/catatan.rb
class Catatan < ApplicationRecord
belongs_to :user
has_many :catatan_tags
has_many :tags, through: :catatan_tags
end
# Pemakaian
user.catatan # semua catatan milik user
catatan.user # pemilik catatan
catatan.tags # semua tag pada catatan (many-to-many)
Praktikum
Lengkapi definisi association agar `Catatan` dimiliki oleh satu `User`, dan `User` bisa punya banyak `Catatan`.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
Jangan lupa buat migration untuk kolom foreign key-nya (`t.references :user`) supaya `belongs_to` bisa benar-benar menyimpan relasinya di database — mendefinisikan association di model saja tidak otomatis membuat kolomnya.