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 saveBenzersizlik 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
endBiç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 }
endvalid? 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
endsave ile save!
İki kaydetme biçimi vardır:
save,true/falsedöndürür; böylece sonuca göre dallanabilirsiniz.save!, başarısızlık durumundaRecordInvalidfı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
endwhere 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)veoffset(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.adultsHı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?veerrorssorunları 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
- Active Record Temelleri
- Geçişler
- İlişkilendirmeler
- Doğrulamalar ve Sorgular