Skip to main content

Sıfırdan Ruby on Rails Uygulaması Geliştirme 🚀


🧠 Teknik Özet

Bu rehberde, Ubuntu 18.04 tabanlı bir geliştirme ortamında Ruby on Rails kullanarak tam işlevli bir web uygulaması geliştireceksiniz. Amaç, Rails’in Model–View–Controller (MVC) mimarisini kullanarak veritabanı tabanlı CRUD işlemleri, veri doğrulama ve kullanıcı kimlik doğrulaması eklemektir.

Uygulama örneği: sharkapp Veritabanı: SQLite3 Hedef: CRUD işlemleri, doğrulama ve authentication


💡 Bu Rehberde Ne Öğreneceksiniz

  • Rails’in MVC yapısını anlamak
  • rails new ve scaffold komutlarıyla hızlı proje oluşturmak
  • SQLite veritabanı kurmak ve migrate işlemleri yürütmek
  • Model doğrulamaları (validations) eklemek
  • Temel HTTP kimlik doğrulaması (authentication) uygulamak

⚙️ 1. Veritabanı Altyapısını Kurma (SQLite3)

Rails geliştirme ortamında varsayılan olarak SQLite kullanır. Aşağıdaki komutlarla kurulum yapabilirsiniz:

sudo apt update
sudo apt install sqlite3 libsqlite3-dev
sqlite3 --version

Bu komutlar SQLite’ı ve gerekli geliştirme dosyalarını kurar.


🧩 2. Yeni Bir Rails Projesi Oluşturma

Yeni bir uygulama başlatın:

rails new sharkapp
cd sharkapp

Bu komut temel dizin yapısını, Gemfile’ı ve varsayılan MVC bileşenlerini oluşturur.

Rails sunucusunu başlatın:

rails server

Tarayıcıda http://localhost:3000 adresine gidin. Rails karşılama ekranı görünmelidir.

Eğer uzaktaki bir geliştirme sunucusunda çalışıyorsanız:

sudo ufw allow 3000
rails server --binding=tr1-sunucu-ip

Ardından http://tr1-sunucu-ip:3000 adresini ziyaret edin.


🧱 3. Model ve CRUD Kaynaklarını Oluşturma

Shark adında bir model ve CRUD kaynakları oluşturun:

rails generate scaffold Shark name:string facts:text

Bu komut model, controller, view ve migration dosyalarını otomatik olarak üretir.

Veritabanını güncelleyin:

rails db:migrate

Migration, sharks tablosunu oluşturur ve kullanıma hazır hale getirir.


🌐 4. Uygulamanın Ana Görünümünü Ayarlama

Ana sayfayı (root) Shark listesini gösterecek şekilde yapılandırın:

# ~/sharkapp/config/routes.rb
Rails.application.routes.draw do
resources :sharks
root 'sharks#index'
end

Artık http://localhost:3000 adresinde Shark listesini göreceksiniz.


🧠 5. Veri Doğrulamaları (Validations) Ekleme

Veri girişlerinde tutarlılığı sağlamak için doğrulama kuralları ekleyin:

# ~/sharkapp/app/models/shark.rb
class Shark < ApplicationRecord
validates :name, presence: true, uniqueness: true
validates :facts, presence: true
end

Bu kurallar, boş veya tekrar eden kayıtların veritabanına kaydedilmesini engeller.


🔒 6. Temel Kimlik Doğrulama (Authentication)

Uygulama içeriğini değiştirebilmek için HTTP Basic Authentication ekleyin:

# ~/sharkapp/app/controllers/application_controller.rb
class ApplicationController < ActionController::Base
http_basic_authenticate_with name: 'sammy', password: 'shark', except: [:index, :show]
end

index ve show eylemleri haricinde tüm işlemler giriş gerektirir.

Tarayıcıda “Yeni Shark” veya “Düzenle” bağlantısına tıkladığınızda kimlik doğrulama penceresi açılacaktır.


🧪 7. Uygulamayı Test Etme

Rails sunucusunu başlatın:

rails s

http://localhost:3000 adresine gidin. Yeni bir “Shark” kaydı ekleyip düzenleyerek CRUD işlemlerini test edin. Hatalı veya boş alan bırakırsanız model doğrulaması devreye girecektir.


❓ Sıkça Sorulan Sorular (SSS)

1. MVC mimarisi ne işe yarar?

Model (veri ve iş mantığı), View (arayüz) ve Controller (istek yönetimi) katmanlarını ayırarak kodun düzenli kalmasını sağlar.

2. Scaffold kullanmak iyi bir fikir mi?

Küçük projelerde hızlı başlangıç sağlar. Büyük projelerde ise elle kontrol tercih edilir.

3. Active Record validation nedir?

Rails’in model katmanında veri girişini kontrol etmenizi sağlayan yapıdır.

4. Basic Auth güvenli midir?

Geliştirme ortamı için uygundur. Üretim ortamında Devise veya bcrypt kullanılması önerilir.

5. Rails rotaları ne işe yarar?

Gelen HTTP isteklerini doğru controller’daki doğru metoda yönlendirir.


🎯 Sonuç

Artık Ruby on Rails kullanarak sıfırdan bir MVC uygulaması geliştirdiniz! Projenizde model doğrulaması ve kimlik doğrulama gibi temel güvenlik katmanlarını uyguladınız. 💡 Uygulamanızı hemen Rabisu Bulut üzerinde bir geliştirme sunucusunda test edebilir ve ölçeklendirebilirsiniz.