Rails Girls App Tutorial
Vesa Vänskä, @vesan tarafından oluşturuldu
Rails’i kurmuş olduğunuzdan emin olun. Kurulum için kurulum rehberini takip edin.
Araçları öğrenin
Metin Editörü
- Atom, Sublime Text, Vim ve Emacs, kod yazmak ve dosyaları değiştirmek için için kullanabileceğiniz metin editörleridir.
Terminal (Windows'ta Komut İstemi)
- Rails sunucusunu başlattığınız ve komutları çalıştırdığınız yer.
Web tarayıcısı
- Uygulamanıza bakabileceğiniz uygulama (Firefox, Safari, Chrome).
Önemli
İşletim sisteminiz için yazılmış yönergeleri seçmeniz önemli - Windows’ta çalıştırmanız gereken komutlar Mac ve Linux’takinden biraz farklı. Eğer problem yaşarsanız komutların altındaki İşletim Sistemi seçicisini kontrol edin. Eğer bir bulut sağlayıcısı (örn. nitrous) kullanıyorsanız, Windows makinada olmanıza rağmen Linux komutlarını kullanmanız gerekir.
1. Uygulama oluşturma
Railsgirls isminde yeni bir Rails uygulaması oluşturuyoruz.
İlk olarak, terminali açalım:
- Mac OS X için: Spotlight’ı açın, Terminal yazın, ve Terminal uygulamasına tıklayın.
- Windows için: Başlat’ı tıklayın ve Komut İstemi ni bulun, sonra Ruby on Rails ile Komut İstemi ne tıklayın.
- Linux (Ubuntu/Fedora) için: Dash’te Terminal i arayın ve Terminal e tıklayın.
- Bulut servis (örneğin; nitrous) için: Hesabınızla giriş yapın, servisinizi başlatın ve IDEsine girin (ayrıntılı bilgi için yükleme kılavuzuna bakın). Terminal genellikle tarayıcı penceresinin alt kısmındadır.
Sonra şu komutları terminalde çalıştırın:
projects
adında bir dizinin oluşturulduğunu, liste komutu ls
i çalıştırarak kontrol edebilirsin. projects
dizinini çıktıda görmelisin. İçinde bulunduğun dizini, projects
klasörüne değiştirmek için şu komutu çalıştırmalısın:
Tekrar ls
komutunu çalıştırarak, boş bir dizin ya da klasör içinde olduğunu kontrol edebilirsin. Şimdi, railsgirls
adında bir uygulama oluşturmak için şu komutu kullanmalısın:
Bu; railsgirls
klasörü içinde yeni bir uygulama oluşturacak, dolayısıyla, tekrar dizinimizi şu komutu çalıştırarak rails uygulamamızın bulunduğu yere değiştirmek isteriz:
Eğer ls
komutunu klasör içinde çalıştırsanız app
veconfig
dosyalarını göreceksiniz. Artık Rails sunucunu çalıştırabilirsiniz:
projects
adında bir dizinin oluşturulduğunu, liste komutu ls
i çalıştırarak kontrol edebilirsin. projects
dizinini çıktıda görmelisin. İçinde bulunduğun dizini, projects
klasörüne değiştirmek için şu komutu çalıştırmalısın:
Tekrar ls
komutunu çalıştırarak, boş bir dizin ya da klasör içinde olduğunu kontrol edebilirsin. Şimdi, railsgirls
adında bir uygulama oluşturmak için şu komutu kullanmalısın:
Bu; railsgirls
klasörü içinde yeni bir uygulama oluşturacak, dolayısıyla, tekrar dizinimizi şu komutu çalıştırarak rails uygulamamızın bulunduğu yere değiştirmek isteriz:
Eğer ls
komutunu klasör içinde çalıştırsanız app
veconfig
dosyalarını göreceksiniz. Artık Rails sunucunu çalıştırabilirsiniz:
http://localhost:3000u tarayıcınızda açın. Bir bulut Servisi (örneğin azot) kullanıyorsanız, önizleme işlevselliğini kullanın (Ayrıntılar için Yükleme kılavuzuna bakın).
“Welcome aboard” sayfasını görüyor olmalısınız. Bu yeni uygulamanızın oluşturulmasının doğru bir şekilde çalıştığı anlamına gelir.
Bu pencerede komut isteminin görünür olmadığını fark edeceksiniz çünkü artık Rails sunucusundasındasınız, komut istemi şu şekilde görünür:
Komut istemi görünür olmadığında yeni komutlar çalıştıramazsınız. Eğer cd
ya da başka bir komutu çalıştırmayı denerseniz bu çalışmayacaktır. Normal komut istemine dönmek için:
Sunucuyu kapatmak için terminalde Ctrl+C e basın.
Eğitmen: Her komutun ne işe yaradığını açıklayın. Ne üretildi? Sunucu ne yaptı?
2.Fikir iskelesini oluşturmak
Bize listeleme, ekleme, çıkarma, düzenleme ve bir şeyleri, bizim durumumuzda fikirleri, görüntüleme için bir başlangıç noktası oluşturacak Rails iskele özelliğini kullanacağız.
Eğitmen:Rails iskele yapısı nedir? (Komutu, model ismini ve ilişkili veritabanı tablosunu, isimlendirme düzenlerini, özellikleri ve tipleri vb. açıklayın) Göçler nelerdir ve göçlere neden ihtiyacınız vardır?
İskele proje dizinimizde yeni dosyalar oluşturacak ama bunları düzgün bir şekilde çalıştırabilmek için veritabanımızı güncelleyecek ve sunucuyu tekrar başlatacak birkaç komut çalıştırmamız gerekiyor.
Tarayıcınızdan http://localhost:3000/ideas adresini açın. Bulut servisi (örneğin; nitrous) kullanıcıları ön izleme linklerine ‘/ideas’ kısmını eklemelidir. (kurulum klavuzuna bakın).
Etrafa tıklayın ve şu birkaç komut-satırı komutlarını çalıştırarak neler var test edin.
Biraz gezindikten sonra sunucudan çıkmak için Ctrl+C tuşlarına basın.
3.Tasarım
Eğitmen: HTML ve Rails arasındaki ilişki hakkında konuşun. View’lerin hangi kısmı HTML, hangi kısmı Embedded Rubby (ERB)? MVC nedir ve bununla ilişkisi ne? (Modeller ve denetleyiciler HTML view’ları oluşturmaktan sorumludur.)
Uygulama henüz çok hoş görünmüyor. Bu konuda bir şeyler yapalım. Güzel görünümü kolayca sağlamak için Twitter Bootstrap projesini kullanacağız.
app/views/layouts/application.html.erb
dosyasını metin editöründe açın ve aşağıdaki satırın üzerine
ekleyin
ve aşağıdaki satırı
aşağıdakiyle değiştirin
Şimdi de layouta bir gezinti çubuğu ve altbilgi ekleyelim. Aynı dosyada, < body >
altında ekle
ve </body>
den önce aşağıdakini ekleyin
Şimdi de fikirler tablosunun görünümünü değiştirelim. app/assets/stylesheets/application.css
dosyasını açın ve en alta aşağıdakini ekleyin
Şimdi dosyalarınızı kaydettiğinden emin olun ve değişiklikleri görmek için tarayıcınızı yenileyin. HTML & CSS i daha fazla da değiştirebilirsiniz.
Eğer terminaliniz size bir şekilde JavaScript’iniz ya da CoffeeScript’iniz ile ilgili bir hata olduğunu ima ediyorsa nodejs’i yükleyin. Bu sorun RailsInstaller kullandığınızda ortaya çıkmamalıdır (Rails’i şu komut ile kurduysanız ortaya çıkar: gem install rails
).
Eğitmen: Biraz CSS ve düzenleri hakkında konuşun.
4.Resim yüklemelerini eklemek
Rails’de dosya yüklemek için bir yazılım yüklememiz gerekiyor.
Metin editörünüzü kullanarak proje dizininiz altında bulunan Gemfile
dosyasını açın ve aşağıdaki satırın altına
aşağıdaki satırı ekleyin
Eğitmen:Kütüphanelerin ne olduğunu ve neden kullanışlı olduklarını açıklayın. Açık kaynak yazılımın ne olduğunun tanımını yapın.
Sunucuyu kapatmak için terminalde Ctrl+C e basın.
Terminalde şunu çalıştırın:
Şimdi yüklemeleri yapacak kodu üretebiliriz. Terminalde şunu çalıştırın:
Şimdi lütfen rails sunucusunu başlatın.
Not: Bazılarınız rails sunucusunu sürekli çalıştırmak için ikinci bir terminal kullanıyor olabilir. Eğer öyle yapıyorsanız şimdi Rails sunucunun sürecini yeniden başlatmanız gerekiyor. Bu eklenen kütüphanenin uygulamaya yüklenmesi için gereklidir.
app/models/idea.rb
dosyasını açın ve aşağıdaki satırın altına
şu satırı ekleyin
app/views/ideas/_form.html.erb
dosyasını açın ve aşağıdaki satırı
şununla değiştirin
Bazen TypeError: can’t cast ActionDispatch::Http::UploadedFile to string hatasını alabilirsiniz.
Eğer bu hatayı alırsanız, app/views/ideas/_form.html.erb
dosyasında şu satırı
şununla değiştirin
Tarayıcınızda resimli bir fikir ekleyin. Şu an bir resim yüklediğinizde güzel görünmüyor çünkü şimdi sadece dosyanın yolunu gösteriyor, o yüzden bunu düzeltelim.
app/views/ideas/show.html.erb
dosyasını açın ve şu satırı
şununla değiştirin
Şimdi, ne değiştiğini görmek için sayfayı yenileyin.
Eğitmen: Biraz HTML hakkında konuşun.
5.Rotaları Düzenlemek
http://localhost:3000 linkini açın (bulut servisi kullanıyorsanız ön izleme linkinizi açın). Hala “Welcome aboard” sayfasını gösteriyor. Hadi fikirler sayfasına yönlendirmesini sağlayalım.
config/routes.rb
dosyasını açın ve ilk satırdan sonra ekleyin
Değişikliği tarayıcınızda başlangıç yolunu (bu http://localhost:3000/ ya da ön izleme linkinizdir) açarak test edin.
Eğitmen:Rotalar hakkında konuşun ve rotaların sıralaması ve statik dosyalarla ilişkilerini anlatın.
Rails 3 kullanıcıları:Bunun çalışması için /public
dizininden index.html dosyasını silmeniz gerekmektedir.
Uygulamanızda statik sayfa oluşturma
Hadi uygulamamıza bu uygulamayı yazan kişiyle ilgili - sen! - bilgileri gösterecek statik bir sayfa ekleyelim.
Bu komut app/views
dizini altına /pages
adında yeni bir dizin ve bu dizinin altına sizin bilgi sayfanız olacak info.html.erb
adında yeni bir dosya oluşturacaktır.
Ayrıca bu sizin routes.rb dosyanızın altına basit bir yol ekler.
Şimdi app/views/pages/info.html.erb
dosyasını açabilir ve HTML’e kendinizle ilgili bilgi ekleyebilirsiniz. Yeni bilgi sayfanızı görebilmek için tarayıcınızda http://localhost:3000/pages/info linkini açın ya da eğer bulut servis kullanıcısı iseniz ön izleme linkinize ‘/pages/info’ yazısını ekleyin.
6+.Sırada ne var?
- HTML & CSS kullanarak tasarım ekle
- Oylama veya derecelendirme ekle
- Etkileşim eklemek icin CoffeeScript (ya da JavaScript) kullanın
- Resimlerin daha hızlı yüklenebilmesi için resimleri yeniden boyutlandırmayı eklemek
Ek Kılavuzlar
- Kılavuz 0: Handy cheatsheet for Ruby, Rails, console etc.
- Kılavuz 1: Add commenting by Janika Liiv
- Kılavuz 2: Put your app online with Heroku by Terence Lee / Put your app online with OpenShift by Katie Miller / Put your app online with Shelly Cloud / Put your app online with anynines / Put your app online with Trucker.io
- Kılavuz 3: Create thumbnail images for the uploads by Miha Filej
- Kılavuz 4: Add design using HTML & CSS by Alex Liao
- Kılavuz 5: Add Authentication (user accounts) with Devise by Piotr Steininger
- Kılavuz 6: Gravatar ile profil resimleri eklemek
- Kılavuz 7: Uygulamanızı RSpec ile test edin
- Kılavuz 8: Continuous Deployment with Travis-CI / Continuous Deployment with Codeship / Continuous Deployment with Snap CIkılavuzkılavuz
- Kılavuzu 9: Lucy Bain tarafından App için ek açıklamalar üzerinden gidin