Study
Ruby on Rails

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`.

Editor Latihan

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.