Denetleyiciler ve Eylemler
İstekleri işleme
Denetleyiciler ve Eylemler, CoddyKit'te ücretsiz bir Ruby Academy dersidir. Bu, 4 dersinin 2. 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.
Denetleyici Nedir?
Bir denetleyici, yönlendiriciden gelen bir isteği alır, gerekli işi yapar ve geri gönderilecek içeriğe karar verir. Modeller ile görünümler arasındaki koordinatördür.
- Denetleyiciler
app/controllersiçinde bulunur. ApplicationControllersınıfından kalıtım alırlar.- Her ortak yöntem bir eylemdir.
Denetleyici Tanımlama
Bir denetleyici, adı Controller ile biten bir sınıftır. Geleneksel olarak ArticlesController, articles kaynağına ait rotaları işler.
class ArticlesController < ApplicationController
def index
@articles = Article.all
end
endEylemler Rotalara Bağlanır
Yedi REST rotasının her biri, kendisiyle eşleşen bir eylemi çağırır. Yönlendirici, GET /articles isteğini index eylemine, GET /articles/1 isteğini show eylemine ve benzer şekilde diğerlerini ilgili eylemlere gönderir. Eylemlere kurala uygun adlar vermek, her şeyin otomatik olarak birbirine bağlanmasını sağlar.
params Karması
İstek verileri, rota parçalarını, sorgu dizelerini ve form alanlarını tutan karma benzeri bir nesne olan params içinde gelir. /articles/5 için params[:id] değeri "5" olur.
def show
@article = Article.find(params[:id])
endÖrnek Değişkenleri Görünümlere Aktarma
Denetleyiciler verileri görünümlere örnek değişkenleri (@ ön eki) aracılığıyla aktarır. Eylem içinde ayarlanan herhangi bir @variable, eşleşen görünüm şablonunda kullanılabilir.
def index
@articles = Article.all
# @articles is available in index.html.erb
endindex ve show Eylemlerini Uygulama
Okuma eylemleri basittir: index bir koleksiyon yükler, show ise kimliğine göre tek bir kayıt yükler. Ardından varsayılan şablonlarını işlerler.
class ArticlesController < ApplicationController
def index
@articles = Article.all
end
def show
@article = Article.find(params[:id])
end
endcreate Eylemini Uygulama
create eylemi, gönderilen verilerden bir kayıt oluşturur ve kaydeder. Başarılı olursa yeniden yönlendirir; başarısız olursa kullanıcının hataları düzeltabilmesi için formu yeniden işler.
def create
@article = Article.new(article_params)
if @article.save
redirect_to @article
else
render :new, status: :unprocessable_entity
end
endredirect_to ile render Karşılaştırması
Birbirinden oldukça farklı iki yanıt türü vardır:
redirect_to, tarayıcıya başka bir URL'ye yeni bir istek göndermesini söyler.render, geçerli istek için bir görünümü doğrudan döndürür.
Başarılı bir yazma işleminden sonra yeniden yönlendirin; formu hatalarla birlikte yeniden göstermek için görünümü işleyin.
Eylem Öncesi İşlemler
before_action, seçilen eylemlerden önce ortak hazırlık işlemlerini çalıştırarak yinelemeyi azaltır. Yaygın bir kullanım, show, edit, update ve destroy eylemlerinin ihtiyaç duyduğu kaydı yüklemektir.
class ArticlesController < ApplicationController
before_action :set_article, only: [:show, :edit, :update, :destroy]
private
def set_article
@article = Article.find(params[:id])
end
endFiltreler ve Kimlik Doğrulama
before_action kuralları da uygular. before_action :require_login gibi bir koruma, kullanıcı oturum açmamışsa redirect_to login_path çağrısını yapıp eylemi durdurabilir; böylece tüm denetleyicileri tek seferde korur.
before_action :require_login
private
def require_login
redirect_to login_path unless current_user
endEksik Kayıtları Ele Alma
find bir kayıt bulamadığında RecordNotFound fırlatır; Rails bunu üretim ortamında 404 yanıtına dönüştürür. Kullanıcı dostu bir sayfa göstermek için bu davranışı rescue_from ile özelleştirebilirsiniz.
rescue_from ActiveRecord::RecordNotFound do
redirect_to articles_path, alert: "Not found"
endHızlı Kontrol
Denetleyiciler konusundaki anlayışınızı sınayın.
Özet: Denetleyiciler ve Eylemler
Denetleyicilerin istekleri nasıl işlediğini öğrendiniz:
- Eylemler, geleneksel kurallara göre rotalara bağlanır.
paramsistek verilerini taşır;@variablesgörünüme ulaşır.createkaydeder, ardından yeniden yönlendirir veya görünümü yeniden işler.redirect_toilerenderfarklı amaçlara hizmet eder.before_actionortak hazırlık işlemlerini paylaşır ve kimlik doğrulamayı zorunlu kılar.
Sırada güçlü parametrelerle toplu atamayı güvenli hâle getireceğiz.
Sıkça Sorulan Sorular
“Denetleyiciler ve Eylemler” dersi ücretsiz mi?
Evet — “Denetleyiciler ve Eylemler” 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.
“Denetleyiciler ve Eylemler” dersinde ne öğreneceğim?
İstekleri işleme 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 2. dersidir.
“Denetleyiciler ve Eylemler” 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
- Yollar ve Kaynaklar
- Denetleyiciler ve Eylemler
- Güçlü Parametreler
- Görünümler ve Görüntüleme