İçeriğe geç

Ruby on Rails Haftası #5 | MVC-Model Katmanı

Tahmini Okuma Süresi: 5 dakika

Rails framework ile web uygulaması geliştirme serimizin 5. gününde,  Boş dizin yapısını oluşturup, veri tabanını hazırladığımız projemiz üzerinde çalışmaya devam edeceğiz. Bugünün ana konusu olarak “Ruby on Rails ─ Active Records” yani MVC mimarisinin model yapısında çalışacağız ve basit veri tabanı işlemlerini öğreneceğiz.

Ruby on Rails Haftası #4 | Uygulama Kurulumu

Rails Active Record, Nesne/İlişkiler Haritalaması (ORM) metodunu çalıştıran Rails katmanıdır. Standart ORM modeline son derece benzer olan bu model aşağıdaki gibidir:

  • Tablolar sınıflara eşlenir,
  • Satırlar nesnelerle eşlenir,
  • Sütunlar, nesne özelliklerine eşlenir.

Rails Active Records, ilişkisel bir veri tabanındaki tablolar ile veri tabanı kayıtlarını idare eden Ruby program kodları arasında bir arayüz ve bağ oluşturur. Ruby method adları, veri tabanı tablolarının alan adlarından otomatik olarak oluşturulur.

Tüm Active Record nesneleri, veri tabanı işlemleri için CRUD(Create, Read, Update, Delete) methodlarına sahiptir. Bu strateji, veri tabanı tablolarıyla uygulama nesneleri arasında basit tasarımlar ve doğrudan eşlemeler sağlar.

Active Record Dosyaları Oluşturma

Önceki bölümümüzde oluşturduğumuz kütüphane uygulamasının tüm varlıkları için Active Record kayıtlarını oluşturmamız gerekmektedir. Bu amaçla, uygulamamızın en üst dizininde aşağıdaki komutları çalıştırmalıyız:

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

Generator’a kitapların ve konuların örneklerini saklamak için Book ve Subject olarak adlandırılan modeller oluşturmasını söylüyorsunuz. Kitap ve Konuyu büyük harfle kullandığınıza ve tekil formu kullandığınıza dikkat edin.

Bu, bir model oluşturduğunuzda takip etmeniz gereken bir Rails paradigmasıdır.

Generate tool kullandığınızda Rails, modele özgü tüm yöntemleri ve tanımladığınız işletme kurallarını barındıran gerçek model dosyasını oluşturur. Bu özellik dahilinde, test odaklı geliştirme gerçekleştirmek için bir birim test dosyası, birim testleri ile kullanılacak örnek bir veri dosyası (fixtures denir) ve veri tabanı tabloları ve sütunlar oluşturmayı kolaylaştıran bir Rails geçişi olacaktır.

Birçok başka dosya ve dizin oluşturmanın yanı sıra, bu, app / models dizininde bir iskelet tanımını içeren book.rb ve subject.rb adlı dosyaları oluşturacaktır.

İşte bu paragraf, gerçekten de Rails’in geliştirme sürecinde bize sağladığı kolaylığı açıkça öne sürüyor. Açıkça belirtmeliyim ki bu satırları yazarken çok keyif aldım 🙂

Book.rb’de bulunacak kodlarımız:

Subject.rb’de bulunacak kodlarımız:

Modeller Arasında Bağlantı Kurmak

Rails uygulamanızda birden fazla modeliniz olduğunda, bu modeller arasında bağlantı kurmanız gerekir. Bunu associations vasıtasıyla yapabilirsiniz. Active Record yapısı üç tür ilişkiyi destekler:

  • Bire bir: Bire bir ilişki, bir öğenin tam olarak başka bir öğeden birine sahip olması durumunda ortaya çıkar. Örneğin, bir insanın tek bir doğum günü veya bir köpeğin tek bir sahibi vardır.
  • Bire çok: Tek bir nesne birçok diğer nesnenin bir üyesi olabilirken, bir çoklu ilişki vardır. Örneğin, bir konuda birçok kitap yazılmış olabilir.
  • Çoka çok: İlk nesne ikinci bir nesne ile ilişkili olduğunda ve ikinci nesne ilk nesnenin bir veya daha fazlası ile ilgili olduğunda çoka çok ilişki vardır.

Modellerinize bildirimler ekleyerek bu ilişkileri belirtiyorsunuz:

has_one, has_many, belongs_to, ve has_and_belongs_to_many.”

Şimdi, kitaplık veri sistemi içinde hangi ilişkileri kurmak istediğinizi Rails’e bildirmeniz gerekiyor. Bunu yapmak için, book.rb ve subject.rb dosyalarını şu şekilde değiştirin:

Yukarıdaki örnekte tek bir konu kullandık, çünkü bir kitap tek bir konuyla alakalı olabilir.

Çoğul kitapları burada kullandık, çünkü bir konunun birden fazla kitabı olabilir.

Doğrulama İşlemleri

 

Doğrulamaların uygulanması Rails’in model katmanında yapılır. Veritabanına girdiğiniz veriler gerçek Rails modelinde tanımlanmıştır; bu nedenle, hangi geçerli verinin aynı yerde olması gerektiğini tanımlamak mantıklı olur.

Book.rb dosyasını açıp aşağıdaki doğrulamaları yaparak temel veri alanlarımızı oluşturabiliriz:

  • Validates_presence_of – “NOT NULL” alanlarını eksik kullanıcı girişine karşı korur.
  • Validates_numericality_of – sayısal verileri girerek kullanıcıyı engeller.

Yukarıda belirtilen doğrulamaların yanı sıra, diğer ortak doğrulamalar da vardır. Tabi ki her birini buraya yazmak anlamsız olacağından Rails Quick Guides* sayfasını kontrol etmenizi öneririm.

Bundan Sonra Ne Yapacağız?

Bir sonraki bölümde, Ruby’yi veritabanı şemanızdaki değişiklikleri tanımlamanıza izin veren ve nesneleri asıl kodla senkronize tutmak için bir sürüm kontrol sistemi kullanmayı sağlayan Rails Migration’ı öğreneceğiz.

Bugünün ana teması Rails ile veri tabanı şemalarını nasıl oluşturacağımız ve Model katmanında bunları nasıl ilişkilendireceğimiz üzerine oldu. Rails’in geliştiricilere sağladığı kolaylıklardan da bahsetmemek imkansız zaten. 🙂 Bu yazı hakkındaki yorumlarınız ve önerilerinizden bahsederek serinin kaliteli içeriklerle dolmasını sağlayabilirsiniz. Paylaşarak daha çok kişinin feyiz almasına yardımcı olmayı da unutmayınız. İyi çalışmalar dilerim 🙂

Kaynaklar

Rails Quick Guides

Rails Draw

https://www.tutorialspoint.com/ruby-on-rails/

Tek Yorum

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir