0Pricing
Ruby Academy · Ders

Doğrulamalar ve Sorgular

Veri bütünlüğü ve sorgulama

Doğrulamalar ve Sorgular, CoddyKit'te ücretsiz bir Ruby Academy dersidir. Bu, 4 dersinin 4. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, Ruby Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. Ruby Academy kursu toplamda 4 dersten oluşur.

Neden Doğrulama Yapılır?

Doğrulamalar, verileriniz veritabanına ulaşmadan önce onları korur. Bir kaydı kaydettiğinizde çalışır ve geçersiz verileri açıklayıcı mesajlarla reddeder.

  • Kötü verilerin sisteme girmesini önler (eksik adlar, hatalı biçimlendirilmiş e-posta adresleri).
  • Ruby'de çalıştıkları için mesajları kullanıcılara göstermek kolaydır.
  • Veritabanı kısıtlamalarını tamamlar, ancak onların yerini almaz.

Varlık Doğrulaması

En yaygın kural, boş olmayan bir değer gerektiren validates :field, presence: true kuralıdır. Bu değer olmadan kaydetme başarısız olur ve bir hata kaydedilir.

class User < ApplicationRecord
  validates :name, presence: true
end

# User.create(name: "") fails to save

Benzersizlik Doğrulaması

uniqueness: true, aynı e-posta adresine sahip iki kullanıcı gibi yinelenen değerleri önler. Doğrulamanın yoğun eşzamanlılık altında bir yarış koşulu olabileceği için bunu benzersiz bir veritabanı diziniyle birlikte kullanın.

class User < ApplicationRecord
  validates :email, presence: true, uniqueness: true
end

Biçim ve Uzunluk

Yerleşik diğer doğrulayıcılar:

  • Boyut sınırları için length: { minimum: 8 }.
  • Kalıplar için format: { with: /regex/ }.
  • Sayılar için numericality: true.
  • İzin verilen değerler için inclusion: { in: [...] }.
class User < ApplicationRecord
  validates :password, length: { minimum: 8 }
  validates :age, numericality: { greater_than: 0 }
end

valid? ve errors

Kaydetmeden doğrulamaları çalıştırmak için valid? çağrısını yapın. Başarısız bir kaydetme işleminden sonra sorunlar record.errors içinde tutulur; errors.full_messages ise kullanıcı arayüzünde gösterilebilecek okunabilir dizeler sağlar.

user = User.new(name: "")
if user.valid?
  user.save
else
  puts user.errors.full_messages
end

save ile save!

İki kaydetme biçimi vardır:

  • save, true/false döndürür; böylece sonuca göre dallanabilirsiniz.
  • save!, başarısızlık durumunda RecordInvalid fırlatır. Bu, geçersiz verilerin istisna olarak ele alınması gerektiğinde kullanışlıdır.

Aynı kalıp create/create! ve update/update! için de geçerlidir.

user.save   # => false if invalid
user.save!  # => raises if invalid

Özel Doğrulamalar

Yerleşik doğrulayıcıların kapsamadığı kurallar için bir yöntem yazın ve bunu validate ile kaydedin. Sorunları errors.add aracılığıyla ekleyin.

class User < ApplicationRecord
  validate :name_not_admin

  def name_not_admin
    if name == "admin"
      errors.add(:name, "cannot be admin")
    end
  end
end

where ile Sorgulama

Sorgu arayüzü, satırları filtreleyen where ile başlar. Veritabanına gönderilmeden önce zincirleme işlemlerle genişletebileceğiniz, gecikmeli bir ilişki döndürür.

User.where(active: true)
User.where("age > ?", 18)
User.where(role: ["admin", "editor"])

Sıralama ve Sınırlandırma

Sonuçları zincirlenebilir yöntemlerle biçimlendirin:

  • order(created_at: :desc) sıralama yapar.
  • limit(10) ve offset(20) sayfalama yapar.
  • select(:id, :name) sütunları seçer.
User.where(active: true)
    .order(created_at: :desc)
    .limit(10)

Toplulaştırmalar ve Gecikmeli Yükleme

Toplulaştırma yardımcıları veritabanı işlevlerini çalıştırır: count, sum(:amount), average(:age), maximum, minimum. İlişkiler gecikmeli değerlendirilir; sorgu yalnızca üzerinde yineleme yaptığınızda, bir toplulaştırma çağırdığınızda veya to_a kullandığınızda çalışır.

User.where(active: true).count
Order.sum(:total)
User.average(:age)

Kapsamlar

Bir scope, yeniden kullanılabilir bir sorguya ad verir; böylece sorguyu düzenli biçimde birleştirebilirsiniz. Kapsamlar ilişkiler döndürür ve hem birbirleriyle hem de where ile zincirlenebilir.

class User < ApplicationRecord
  scope :active, -> { where(active: true) }
  scope :adults, -> { where("age >= ?", 18) }
end

User.active.adults

Hızlı Kontrol

Doğrulamalar ve sorgular konusundaki anlayışınızı sınayın.

Özet: Doğrulamalar ve Sorgular

Verileri korumayı ve getirmeyi öğrendiniz:

  • Varlık, benzersizlik, uzunluk ve biçim gibi doğrulamalar kaydetme işlemlerini korur.
  • valid? ve errors sorunları bildirir; save! istisna fırlatır.
  • Özel doğrulamalar, özel kuralları kapsar.
  • where, order, limit, toplulaştırmalar ve kapsamlar gecikmeli sorgular oluşturur.

Böylece Modeller ve Active Record kursu tamamlanır.

Sıkça Sorulan Sorular

“Doğrulamalar ve Sorgular” dersi ücretsiz mi?

Evet — “Doğrulamalar ve Sorgular” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve Ruby Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. Ruby Academy kursu toplamda 4 dersten oluşur.

“Doğrulamalar ve Sorgular” dersinde ne öğreneceğim?

Veri bütünlüğü ve sorgulama Ruby Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

Ruby Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te Ruby Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 4. dersidir.

“Doğrulamalar ve Sorgular” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu Ruby Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her Ruby Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Active Record Temelleri
  2. Geçişler
  3. İlişkilendirmeler
  4. Doğrulamalar ve Sorgular
← Ruby Academy Sayfasına Dön