$ rails myappBu, Rails uygulamanızın iskeletini oluşturur.
- Klasörünüze girin: $ cd myapp
- Rails sunucunuzu başlatın: $ ruby script/server //{{:getting-started:installation:information.png|}}Not: Mac veya Linux kullanıyorsanız başta "ruby" yazmanız gerekmiyor olabilir.//
- Bir tarayıcı açın ve http://localhost:3000 adresine gidin. Rails uygulamasının çalıştığını göreceksiniz, işte bu kadar! Kendi sırtınızı sıvazlayın, bunu hak ettiniz.
===== Bölüm 3 - Veritabanı ve Scaffold Oluşturma =====
- Tercih ettiğiniz düzenleyicide uygulamayı açın.
- ''config/database.yml'' dosyasını açın. Bu dosya, genellikle uygulamanız için farklı veritabanlarını ayarladığınız yerdir, ancak bu örnek için hiçbir şeye dokunmanıza gerek yoktur. Belki fark etmişsinizdir, varsayılan veritabanı adları Rails uygulamanızın adından alınır.
- Başka bir komut istemi açın (böylece sunucu arka planda çalışmaya devam edebilir) ve uygulama dizininizde şu komutu çalıştırın: $ rake db:create Bu sizin development (geliştirme) veritabanınızı oluşturacaktır.
- Şimdi ilk tablomuzu ve arabirimimizi üretmek istiyoruz. Rails'de bunu [[http://guides.rubyonrails.org/getting_started_with_rails.html#_getting_up_and_running_quickly_with_scaffolding|scaffold]] (iskele) ile yaparız. Bir scaffold kısaca başlangıç noktasıdır ve oradan itibaren gittikçe büyüyen kodlar ekleyebiliriz. İlk önce scaffold komutunu parametre olmadan çalıştıralım: $ ruby script/generate scaffold Çıktıya bir göz atın. Komutun nasıl kullanılacağını anlatır.
- Şimdi devam edelim ve scaffold'u ilk web uygulamamızı oluşturmaya başlamak için kullanalım. Bir "user" (kullanıcı) tablosu oluşturacağız:$ ruby script/generate scaffold user first_name:string last_name:string active:boolean Bu kodu kopyalayıp yapıştırmanızda sorun yok, bunu kimseye söylemem. Yalnızca bir demet şablon dosyasından ibaret olan scaffold'unuz artık oluşturuldu.
- Bizim için oluşturduğu [[http://guides.rubyonrails.org/getting_started_with_rails.html#_running_a_migration|migration'ı (geçiş) çalıştıralım]] (veritabanı tablosunu oluşturmak için). $ rake db:migrate
- Şimdi tarayıcınıza geri dönün (sunucunuzu kapattıysanız onu yeniden başlatın) ve http://localhost:3000/users adresine gidin.
- Birkaç kullanıcı ekleyin ve Rails arabiriminizi kurcalayın!
===== Bölüm 4 - İşlevsellik Ekleme =====
- Kullanıcılar için biyografi alanı eklemeyi unuttuğumuzu yeni fark ettik - haydaa! Ya bu sütunu eklemek için yeni bir migration oluşturabiliriz ya da bizim için oluşturulan migration'ı geri alabiliriz. Hadi ikincisini yapalım. Bir sütun ekleyebilmek için tabloyu kaldırmak üzere, şu komutu çalıştırın:$ rake db:rollback Bu, son migration'ı geri alır.
- Şimdi ''/db/migrations/'' veya ''/db/migrate/'' klasöründe bulunan migration'ı açın. Şimdilik sadece bir tek dosya olması lazım.
- Dikkat ederseniz migration'ın işini yapan ''up'' ve yaptıklarını geri alan ''down'' adında iki metodu var.
- ''bio'' alanını eklemek istiyoruz, bu nedenle ''t.boolean :active'' satırından sonra şunu ekleyin:t.text :bio
- Dosyayı kaydedin ve tekrar migration yapın: $ rake db:migrate
- Bu aşamada tarayıcınızı kontrol ederseniz, biyografi alanının kullanıcılarımızın bilgilerinde veya formlarda otomatik olarak görünmediğini fark edeceksiniz. Bunları elle eklememiz gerekecek. Evet, her şeyi silip scaffold komutunu tekrar çalıştırarak da bu alanı elde edebilirdik ama o zaman hiç birşey öğrenemezdiniz.
- Şimdi ''/app/views/users/new.html.erb'' dosyasını açalım. Bu, yeni kullanıcı ekleme formumuzu oluşturan dosyadır. Aşağıdaki kodu kullanarak active onay kutusunun altına bir biyografi alanı eklememiz gerekir.
<%= f.label :bio %>
<%= f.text_area :bio %>
- Şimdi tarayıcınızda http://localhost:3000/users/new adresindeki yeni kullanıcı ekleme sayfasını açın. Biyografi alanını görecek ve biyografiye sahip yeni kullanıcılar ekleyebileceksiniz. {{:getting-started:installation:information.png|}} Bir kullanıcının biyografisini düzenleyebilmek için ''edit'' view'ını (görünüm) (''/app/views/users/edit.html.erb'' dosyası) güncellemek isterseniz, aynı kodu kullanabilirsiniz.
- Yeni bir kullanıcı oluşturduğunuzda, otomatik olarak onun görüntülenme (show) sayfasına gidilir. Şimdi biyografiyi görüntülenme sayfasına ekleyelim. Bunun için ''/app/views/users/show.html.erb'' dosyasını açın ve Active alanının altına şunu ekleyin:
Bio:
<%=h @user.bio %>
- Dosyayı kaydedin ve sonucu tarayıcıda kontrol edin. İlk başta değişikliğinizi görmezseniz, ''show'' sayfasında olduğunuzdan (ve ''index'' sayfasında olmadığınızdan) emin olun. Tüm bunlar başarılı olduğunda kocaman bir nara atın, çok büyük bir iş başardınız.
===== Bölüm 5 - İlk Doğrulamanız =====
- Rails'de doğrulamaları modellerin içine koyarız, bu nedenle ''/app/models/user.rb'' dosyasını açalım.
- Kullanıcının adının ve soyadının girilmesini zorunlu yapmak istiyoruz. Bunun için User modeline bir doğrulama ekleyelim:
class User < ActiveRecord::Base
validates_presence_of :first_name, :last_name
end
- Dosyayı kaydedin, tarayıcınıza gidin ve adı ya da soyadı olmadan bir kullanıcı oluşturmaya çalışın.
- Rails'de birçok yardımcı doğrulama sınıfı vardır, [[http://apidock.com/rails/ActiveRecord/Validations/ClassMethods|bu API sayfası]]nın sağ tarafında bunların bir listesini görebilirsiniz.
{{:getting-started:installation:information.png|}}
Yalnızca eğlencesine başka bir doğrulama ekleyin.
===== Bölüm 6 - Görsel Yerleşimi Değiştirme =====
- Uygulamanızın tarayıcı HTML kaynağını incelediyseniz, uygulamanın bir tür yerleşimde olduğunu fark etmiş olabilirsiniz. Varsayılan olarak, ''scaffold'' komutunu çalıştırdığınızda ''/app/views/layouts/users.html.erb'' dosyası oluşturulur ve yerleşiminiz olarak kullanılır.
- Büyük ihtimalle çoğu controller'ınız (denetleyici) için tek bir yerleşim kullanmak isteyeceksiniz, bu yüzden buna daha genel bir ad verelim. ''users.html.erb'' dosyasını ''application.html.erb'' olarak yeniden adlandırın. Bir Rails kuralı olarak, artık layouts dizininizde bir ''application.html.erb'' dosyanız olduğu için, tüm controller'lar varsayılan olarak bunu kullanacaktır (isterseniz bunu daha sonra geçersiz kılabilirsiniz).
- Şimdi eğlencesine yerleşimimize bir şeyler ekleyelim. ''application.html.erb'' dosyasını açın ve şuna benzer bir şeyler ekleyin: Rails Rocks!
- Dosyayı kaydedin, tarayıcınıza gidin; yaptığınız değişikliğin web sitesinin TÜM sayfalarına yansıtıldığını göreceksiniz.
===== Bölüm 7 - Konsolla Oynama =====
- Şimdi User modelimizle oynayarak biraz eğlenelim. Komut satırınızda şunu yazın:$ ruby script/console Artık modellerinize erişimi olan bir Ruby IRB oturumundasınız.
- Oynamaya başlamadan önce, bizim için hangi SQL komutlarının oluşturulduğunu görebilmek için şu komutu çalıştırın: $ ActiveRecord::Base.logger = Logger.new(STDOUT)
- Her şeyin çalıştığından emin olmak için basit bir Ruby komutunu deneyelim:puts "Hello Dude!"
- Şimdi modelimizle biraz eğlenmeye çalışalım. Şuna benzer bir şeyler yaparak yeni bir model oluşturun:
u = User.new
u.first_name = "Gregg"
u.last_name = "Pollack"
u.save Oluşturulan SQL komutuna dikkat edin.
- Şimdi hepsini tek satırda yapmayı deneyin:
User.create(:first_name => "Joe", :last_name => "Blow")
Bir hata alırsanız, yazımı kontrol edin.
- Şimdi adı Joe olan kullanıcıyı bulup soyadını "Johnson" olarak değiştirelim.
u = User.find_by_first_name("Joe")
u.last_name = "Johnson"
u.save
Oluşturulan SQL komutuna dikkat edin; harika!
- Şimdi de kullanıcıyı silelim. u.destroy
- Biraz daha eğlence için şu komutların neler yaptığına bakın:
User.first
User.last
User.all
Bu değerleri değişkenlere atayın ve özellikleriyle oynayın. ''.all'' metodunun bir dizi (array) geri döndürdüğüne dikkat edin, bu nedenle dizideki belirli bir öğeye erişmek için [0] veya [2] gibi dizin kullanmak isteyebilirsiniz.
- Sisteminizdeki tüm kullanıcıları büyük harfle yazdıralım:
User.all.each {|user| puts user.first_name.upcase }
- Adları yazdırdığına ve ardından User dizisini de döndürdüğüne dikkat edin. Unutmayın, Ruby'de her metod nil de olsa mutlaka bir şey döner.
- Şimdi sistemimizdeki tüm soyadlarının bir dizisini oluşturalım:
User.all.map {|user| user.last_name }
Burada ilgilendiğimiz şey geri döndürülen değer, yani soyadlarından oluşan dizidir.
- Buradaki [[http://apidock.com/rails/ActiveRecord/Base|API sayfası]]na bir göz atın. Sağ tarafta ActiveRecord nesnelerinde çalıştırabileceğiniz tüm metodları görebilirsiniz. Birkaçını deneyin.
===== Ek Okuma =====
[[http://guides.rubyonrails.org/getting_started.html|Rails'e Başlarken Rehberi]] başka eğlenceli, ancak Rails mimarisinin ek açıklamasını içeren bir belge içermektedir.