Dasar-Dasar Active Record
Dasar-Dasar ORM.
Dasar-Dasar Active Record adalah pelajaran Ruby Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar Ruby Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus Ruby Academy mencakup 4 pelajaran total.
Apa Itu Active Record?
Active Record adalah lapisan ORM (Pemetaan Objek-Relasional) Rails. Active Record menghubungkan objek Ruby dengan baris dalam tabel basis data, sehingga Anda bekerja dengan objek, bukan SQL mentah.
- Sebuah kelas dipetakan ke sebuah tabel.
- Sebuah instans dipetakan ke sebuah baris.
- Sebuah atribut dipetakan ke sebuah kolom.
Mendefinisikan Model
Model adalah kelas yang mewarisi ApplicationRecord (yang mewarisi ActiveRecord::Base). Berdasarkan konvensi, model User secara otomatis dipetakan ke tabel users.
class User < ApplicationRecord
end
# Maps to the 'users' table
# Columns become attributes automaticallyKonvensi daripada Konfigurasi
Active Record menggunakan konvensi penamaan agar Anda perlu menulis lebih sedikit pengaturan:
- Nama kelas berbentuk tunggal dan CamelCase:
User. - Nama tabel berbentuk jamak dan snake_case:
users. - Kunci utama secara bawaan adalah
id.
Ikuti konvensi, dan sebagian besar pengaitan akan dilakukan secara otomatis.
Membuat Rekaman
Buat baris dengan create, atau bangun terlebih dahulu lalu jalankan save. create membuat instans dan menyimpannya dalam satu pemanggilan.
user = User.create(name: "Ada", email: "ada@example.com")
# Or in two steps:
other = User.new(name: "Linus")
other.email = "linus@example.com"
other.saveMembaca Rekaman
Ambil rekaman dengan metode pencari:
User.find(1)berdasarkan kunci utama (menimbulkan kesalahan jika tidak ditemukan).User.find_by(email: 'a@b.com')berdasarkan kolom apa pun (mengembalikan nilai kosong jika tidak ditemukan).User.alluntuk semua baris.User.firstdanUser.last.
user = User.find(1)
admin = User.find_by(role: "admin")
everyone = User.allMemperbarui Rekaman
Ubah atribut lalu jalankan save, atau gunakan update untuk menetapkan atribut dan menyimpannya sekaligus. update mengembalikan true atau false berdasarkan validasi.
user = User.find(1)
user.update(name: "Ada Lovelace")
# Equivalent two-step form:
user.name = "Ada Lovelace"
user.saveMenghapus Rekaman
Hapus baris dengan destroy (menjalankan panggilan balik dan asosiasi) atau delete (langsung menggunakan SQL dan melewati panggilan balik). Sebaiknya gunakan destroy, kecuali Anda memiliki alasan untuk melewati panggilan balik.
user = User.find(1)
user.destroy
# Bulk destroy:
User.where(active: false).destroy_allAtribut dan Pelacakan Perubahan
Active Record melacak perubahan yang belum disimpan. Metode seperti changed?, changes, dan name_was memberi tahu Anda perubahan mana yang belum disimpan sebelum Anda menyimpannya. Hal ini berguna dalam panggilan balik dan pencatatan.
user = User.find(1)
user.name = "New Name"
puts user.changed? # true
puts user.name_was # old value
puts user.changes.inspectBerkas schema.rb
Active Record membaca struktur tabel Anda dari basis data, bukan dari model. Struktur saat ini dicerminkan dalam db/schema.rb, yang dibuat dari migrasi. Anda hampir tidak pernah perlu mengeditnya secara manual.
Di Mana SQL Berada?
Active Record mengubah pemanggilan metode Anda menjadi SQL di balik layar. User.find(1) menjadi SELECT * FROM users WHERE id = 1 LIMIT 1. Anda dapat melihat SQL yang dihasilkan dengan User.where(active: true).to_sql.
sql = User.where(active: true).to_sql
# => SELECT "users".* FROM "users" WHERE "users"."active" = TRUEMengapa ORM Membantu
Active Record memberi Anda:
- Kode yang tidak bergantung pada basis data (PostgreSQL, MySQL, SQLite).
- Perlindungan terhadap injeksi SQL melalui kueri berparameter.
- Akses data yang mudah dibaca dan berorientasi objek.
Anda hanya perlu menggunakan SQL mentah untuk kasus khusus.
Pemeriksaan Singkat
Uji pemahaman Anda tentang dasar-dasar Active Record.
Ringkasan: Dasar-Dasar Active Record
Anda telah mempelajari dasar-dasar ORM:
- Sebuah kelas dipetakan ke tabel, sedangkan instans dipetakan ke baris.
- Konvensi daripada konfigurasi menangani penamaan.
- CRUD:
create,find/find_by,update,destroy. - Pelacakan perubahan menunjukkan perubahan yang belum disimpan.
- Active Record menghasilkan SQL yang aman untuk Anda.
Selanjutnya, kita akan mengelola skema basis data dengan migrasi.
Pertanyaan yang Sering Diajukan
Apakah pelajaran “Dasar-Dasar Active Record” gratis?
Ya — teks lengkap “Dasar-Dasar Active Record” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus Ruby Academy, upgrade ke CoddyKit PRO. Kursus Ruby Academy mencakup 4 pelajaran total.
Apa yang akan aku pelajari di “Dasar-Dasar Active Record”?
Dasar-Dasar ORM. Kamu berlatih Ruby Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.
Apakah aku perlu pengalaman untuk memulai Ruby Academy?
Tidak diperlukan pengalaman sebelumnya. Ruby Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.
Berapa lama pelajaran “Dasar-Dasar Active Record” memakan waktu?
Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.
Bisakah aku menulis dan menjalankan kode dalam pelajaran Ruby Academy ini?
Ya. Setiap pelajaran Ruby Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.
Semua pelajaran dalam kursus ini
- Dasar-Dasar Active Record
- Migrasi
- Asosiasi
- Validasi dan Kueri