0Pricing
Ruby Academy · Ders

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/controllers içinde bulunur.
  • ApplicationController sı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
end

Eylemler 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
end

index 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
end

create 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
end

redirect_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
end

Filtreler 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
end

Eksik 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"
end

Hı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.
  • params istek verilerini taşır; @variables görünüme ulaşır.
  • create kaydeder, ardından yeniden yönlendirir veya görünümü yeniden işler.
  • redirect_to ile render farklı amaçlara hizmet eder.
  • before_action ortak 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

  1. Yollar ve Kaynaklar
  2. Denetleyiciler ve Eylemler
  3. Güçlü Parametreler
  4. Görünümler ve Görüntüleme
← Ruby Academy Sayfasına Dön