Ruby on Rails - Rekaman Aktif

Rails Active Record adalah layer Object / Relational Mapping (ORM) yang disertakan dengan Rails. Ini mengikuti model ORM standar, yaitu sebagai berikut -

  • tabel memetakan ke kelas,
  • baris dipetakan ke objek dan
  • kolom dipetakan ke atribut objek.

Rails Active Records menyediakan antarmuka dan binding antara tabel-tabel dalam database relasional dan kode program Ruby yang memanipulasi record database. Nama metode Ruby secara otomatis dibuat dari nama field tabel database.

Setiap objek Rekaman Aktif memiliki CRUD (Create, Read, Utanggal, dan Delete) metode untuk akses database. Strategi ini memungkinkan desain sederhana dan pemetaan langsung antara tabel database dan objek aplikasi.

Menerjemahkan Model Domain ke dalam SQL

Menerjemahkan model domain ke dalam SQL umumnya sangat mudah, selama Anda ingat bahwa Anda harus menulis SQL yang ramah Rails. Dalam istilah praktis, Anda harus mengikuti aturan tertentu -

  • Setiap entitas (seperti book) mendapatkan tabel dalam database yang dinamai menurut namanya, tetapi dalam bentuk jamak (books).

  • Setiap tabel pencocokan entitas memiliki bidang yang disebut id , yang berisi bilangan bulat unik untuk setiap rekaman yang dimasukkan ke dalam tabel.

  • Diberikan entitas x dan entitas y, jika entitas y milik entitas x, maka tabel y memiliki bidang yang disebut x_id.

  • Sebagian besar bidang di tabel mana pun menyimpan nilai untuk properti sederhana entitas itu (apa pun yang berupa angka atau string).

Membuat File Rekaman Aktif (Model)

Untuk membuat file Rekaman Aktif entitas kita untuk aplikasi perpustakaan, yang diperkenalkan di bab sebelumnya, keluarkan perintah berikut dari tingkat atas direktori aplikasi.

library\> rails script/generate model Book
library\> rails script/generate model Subject

Atas rails generate model book perintah menghasilkan kode otomatis seperti di bawah ini -

Anda memberi tahu generator untuk membuat model yang disebut Buku dan Subjek untuk menyimpan contoh buku dan subjek. Perhatikan bahwa Anda menggunakan huruf besar untuk Buku dan Subjek dan menggunakan bentuk tunggalnya. Ini adalah paradigma Rails yang harus Anda ikuti setiap kali Anda membuat model.

Saat Anda menggunakan alat penghasil, Rails membuat file model aktual yang menampung semua metode unik untuk model dan aturan bisnis yang Anda tetapkan, file pengujian unit untuk melakukan pengembangan yang digerakkan oleh pengujian, file data sampel (disebut perlengkapan) untuk digunakan dengan pengujian unit, dan migrasi Rails yang membuat pembuatan tabel dan kolom database menjadi mudah.

Selain membuat banyak file dan direktori lain, ini akan membuat file bernama book.rb dan subject.rb mengandung definisi kerangka di app/models direktori.

Konten tersedia di book.rb -

class Book < ActiveRecord::Base
end

Konten tersedia di subject.rb -

class Subject < ActiveRecord::Base
end

Membuat Asosiasi antar Model

Jika Anda memiliki lebih dari satu model dalam aplikasi rel Anda, Anda perlu membuat koneksi di antara model-model tersebut. Anda dapat melakukannya melalui asosiasi. Rekaman Aktif mendukung tiga jenis asosiasi -

  • one-to-one- Hubungan satu-ke-satu terjadi ketika satu item memiliki tepat satu item lainnya. Misalnya, seseorang berulang tahun tepat satu atau seekor anjing memiliki tepat satu pemilik.

  • one-to-many- Hubungan satu ke banyak ada ketika satu objek bisa menjadi anggota dari banyak objek lainnya. Misalnya, satu mata pelajaran bisa memiliki banyak buku.

  • many-to-many - Hubungan banyak-ke-banyak terjadi ketika objek pertama terkait dengan satu atau lebih objek kedua, dan objek kedua terkait dengan satu atau banyak objek pertama.

Anda menunjukkan asosiasi ini dengan menambahkan deklarasi ke model Anda: has_one, has_many, belonging_to, dan has_and_belongs_to_many.

Sekarang, Anda perlu memberi tahu Rails hubungan apa yang ingin Anda buat dalam sistem data pustaka. Untuk melakukannya, ubah book.rb dan subject.rb agar terlihat seperti ini -

class Book < ActiveRecord::Base
   belongs_to :subject
end

Kami telah menggunakan subjek tunggal dalam contoh di atas, karena satu Buku dapat dimiliki oleh satu Subjek.

class Subject < ActiveRecord::Base
   has_many :books
end

Kami telah menggunakan buku jamak di sini, karena satu mata pelajaran dapat memiliki banyak buku.

Menerapkan Validasi pada Model

Implementasi validasi dilakukan dalam model Rails. Data yang Anda masukkan ke dalam database ditentukan dalam model Rails yang sebenarnya, jadi masuk akal untuk menentukan data valid apa yang diperlukan di lokasi yang sama.

Validasi adalah -

  • Nilai bidang judul tidak boleh NULL.
  • Nilai bidang harga harus numerik.

Buka book.rb dalam app\model subdirektori dan letakkan validasi berikut -

class Book < ActiveRecord::Base
   belongs_to :subject
   validates_presence_of :title
   validates_numericality_of :price, :message=>"Error Message"
end
  • validates_presence_of - melindungi kolom "NOT NULL" dari input pengguna yang hilang.

  • validates_numericality_of - mencegah pengguna memasukkan data non numerik.

Selain validasi yang disebutkan di atas, ada validasi umum lainnya. Periksa Panduan Cepat Rails .

Apa selanjutnya?

Di bab berikutnya, kita akan mempelajari Rails Migration, yang memungkinkan Anda menggunakan Ruby untuk menentukan perubahan pada skema database Anda, sehingga memungkinkan untuk menggunakan sistem kontrol versi untuk menjaga sinkronisasi dengan kode yang sebenarnya.