Rails 2.0 Çıktı

Web uygulamaları geliştirme iskeleti Ruby on Rails’in 2.0 sürümü çıktı. Biz web tabanlı projelerimizde Ruby on Rails kullanıyoruz. 2005 yılında Openstudio Rails’in ilk versiyonuyla yapılmıştı, daha sonra Manevi Emek Borsası, Bağcık, ve Meta-Markets projelerinde kullandık. Henüz açmadığımız deneysel projeleri ve bu sırada geçimimizi sağlamak için yaptığımız bir kaç ticari projeyi Ruby on Rails’in 1.2.3 sürümü ile geliştirdik. Bütün bunlar olurken Rails etrafında oluşan topluluklardan öğrendik ve elimizden geldiğince katkıda bulunmaya çalıştık. Ruby on Rails açık kaynaklı bir proje, bu yeni 2.0 sürümü de dünyanın pek çok yerinden programcının katkısıyla geliştirildi.
Rails 2.0 bir çok yenilik içeriyor, ilk gözüme çarpanlar şunlar:
- Sessionlar Cookie’de Saklanabiliyor (sunucu yüküne dağıtık bir alternatif)
- RESTful route yapmak artık daha temiz
- to_xml ve to_json daha fazla özelleştirlebiliyor
- SQL sorguların cache’lenmesi
- Eklenti sıralaması (birbirine bağlı eklentierin önce veya sonra yüklenmesi için)
- .rhtml ve .rxml kalkıyor
Rails 2.0 PDF dökümanında yeni özellikler derinlemesine anlatılıyor. Ayrıca Mike Clark tarafından yazılan yeni Gelişmiş Rails Tarifeleri kitabı da Rails 2.0 içeriyor. Bir de son zamanlarda çok faydasını gördüğüm Rails screencast‘leri var, Rails Casts arşivi oldukça detaylı. Sizin de dikkatinizi çeken yeni Rails 2.0 özellikleri varsa bu yazıya yorum yazarak paylaşın, ne varmış beraber öğrenelim. Ayrıca Bağcık’da Ruby on Rails ile ilgili faydalı bağlantıları biriktiriyoruz.
December 15th, 2007 at 2:10 am
yeni rake tasklari guzel olmus. cok kullanisli. prototype, scripcolusu falan da core paketten cikarmislar. convention da oturmus artik, olmus resmen yane.
peepcode.com da rails2pdf dokumani 9 papel. cok faydali bilgiler iceren bu dokumani okuyunuz.
sori.
http://www.peepcode.com
December 15th, 2007 at 4:21 pm
Eski bir sürümden Rails 2.0 sürümüne geçmek için üç adım:
1. Önce Rails 1.2.3den 1.2.5e geçin
>> gem install rails --version "1.2.5"2. Sonra uygulamanızda config/environment.rb içinde RAILS_GEM_VERSION ‘1.2.5′ olacak ve temizlik için:
>> rake rails:update:configs3. Bu sürümde uygulamanız uyarı veriyorsa uyarılar bitene kadar düzeltmeleri yapın, Rails 2.0da bu uyarılar hataya dönüşecek. Uyarı yoksa, rails 2.0 yükleyebilirsiniz:
>> gem install railsDecember 15th, 2007 at 4:23 pm
Onur merhaba Rails ile yaptığın işler varsa bir ara gönderir misin bakmak isterim.
December 15th, 2007 at 7:45 pm
şu an up vaziyette yok
eski projeleri de rails2 ye geçirmeyeceğim. zaten kullandığım tüm pluginleri core pakete eklemişler artık. ufukta yeni bir rails projesi gözüküyor fakat 
December 15th, 2007 at 8:01 pm
yeni rake tasklari görmek için
rake –tasks
bu daha önceki version da varmıydı bilmiyorum ama rake db:create_all bu mesela enfes bir çözüm. direk config dosyalarınızı okuyup gerekli databaseleri açıyor. sonra da migraitonları çakıp rake db:migrate ile iki satır da database setupı bitiriyorsunuz.
ayrıca göze çarpan bmba özelliklerden ikisinden bahsedeyim.
query caching default olarak açık gelen bir özellik. şöyle çalışıyor. bir sql query yapıyorsunuz. rails responseu cache ediyor. sonra tekrar o queryi yaptığınızda eğer üzerinde bir değişiklik yapılmamışsa (update,delete) yeni bir sql query çalıştırmadan size cachedeki sonucu dönüyor.
railsin götleri tekmeledii ikinci bir yeni özellik de daha önce errtheblog plugini olarak bildiğimiz sexy migrations. bunu şimdi kor pakete eklemişler. şöyle ki,
create_table :posts do |t|
t.text :body, :name
t.integer :sayi
t.timestamps
end
gibi migrationlar yazabiliyorsunuz. eski versiyonda rest fonksiyonları çok kullanmamaya çalışıyordum, çünkü rahat çalışamıyordum ve ISO8859-9. rest ile ilgili tüm problemleri rails2 de çözdüklerini görmek beni çok sevindirdi.
bu versiyon çok büyük bir atılım olmuş. tüm bunları test etmek için sabredemiyorum artık.
December 16th, 2007 at 2:30 am
Rake Unix ortamındaki make koumutundan geliyor. Shell script yerine ruby ile yazıyorsun. Bir uygulamayı geri planda çekip çevirmek için çok faydalı, sık yaptığın işleri otomatik yapan scriptler yazıyorsun basitçe.
Kendi Rake’lerimi nasıl yazarım?
http://railscasts.com/episodes/66
December 16th, 2007 at 2:48 am
istersen o taskları cronjob ekleyebiliyorsun, hatta o tasklar direk olarak senin modellerine -dolayısıyla databaseine de- ulaşıyorlar, arada ek bir programlama diline, shell scriptlere falan ihtiyaç duymuyorsun. herşey ruby herşey pure oo.
bu da daha önceden var mıydı hatırlamıyorum, fakat routinglerde has_many ilişkileri verebiliyorsun. routing katmanında bile objectoriented kafalara girebiliyorsun. bir de bir de şu acayip hoşuma gitti.
rake db:rollback STEP=2
komut bu. rahatlıkla da anlaşılableceği gibi, database (şemasını) iki adım rollback ediyor.
bu arada pagination kalkmış. onun yerine şu plugini indirin:
http://rock.errtheblog.com/will_paginate
December 26th, 2007 at 5:22 pm
Çok faydalı bir Ruby array fonksiyonu
include?Elinizdeki liste içinde şu şu eleman var mı diye kontrol etmenin kolay bir yolu:dizi = [ "a", "b", "c" ]
dizi.include?(”b”) #=> true
dizi.include?(”z”) #=> false
Burda tabi
trueyerine elemanın kendisini döndürmesi çok kullanışlı olurdu. Bunun için eleman dizide varsa indeks numarasını alıp ve bununla elemana erişmiş olursunuz.i = dizi.index("b") #=> 1
dizi[i] #=> “b”
Bu teknik basit dizilerde değil karmaşık nesneler içeren diziler için çok faydalı. Bu örnekte
"b"yerineUyediye bir nesne olabilirdi, sonrauye.isimveyauye.emaildiye iç elemanları kullanabilirsiniz.December 26th, 2007 at 5:27 pm
@onur
rake db:rollbacknefis, çok basit ve kullanışlı bir script. Bir web uygulaması geliştirirken veritabanı’nı en baştan tasarlayıp bitirmek neredeyse imkansız zaten gerek yok, proje gelişirken yavaş yavaş değişmesi ve olgunlaşması gerekiyor, bu script tam burada veritabanı sürümünü ileri geri alarak değişiklikleri denemek için faydalı.December 26th, 2007 at 5:53 pm
canım rorr ya
[og@pwnt /rails/noob]$ ruby script/console –sandbox
Loading development environment in sandbox (Rails 2.0.1)
Any modifications you make will be rolled back on exit
>> rm -fr /*
hem konsol hem direk servera bağlı (+db) hem de rollback edebiliyor. daha ne olsun
December 26th, 2007 at 6:00 pm
>>script/console kullanmak kesinlikle prototip kod yazmak için çok faydalı. Veritabanı konsolda elinin altinda, daha ne istersin.
December 26th, 2007 at 6:07 pm
amy hoy un ilgili dökümanını öneririm
http://www.slash7.com/articles/2006/12/21/secrets-of-the-rails-console-ninjas
December 26th, 2007 at 6:24 pm
Sagol onur oldukça zengin bir bağlantıymış.
irb mix tape de çok faydalı
http://errtheblog.com/posts/24-irb-mix-tape
December 26th, 2007 at 6:38 pm
burak birr yöntem
irb(main):001:0> fu = %w(ali veli deli)
=> ["ali", "veli", "deli"]
irb(main):002:0> fu.empty?
=> false
irb(main):003:0> fu.include?(’ali’)
=> true
irb(main):004:0> fu.index(’ali’)
=> 0
irb(main):005:0> fu.index(’veli’)
=> 1
irb(main):006:0> fu[fu.index('veli')]
=> “veli”
December 26th, 2007 at 6:39 pm
oh yazmissin zaten
December 26th, 2007 at 6:40 pm
irb tab tamamlama yapabilmek için .irbrc dosyasına şunu eklemeniz lazım
http://whytheluckystiff.net/clog/ruby/tabCompletionInIRb.html
December 26th, 2007 at 6:48 pm
Bazen hiç bir şeyin cevabı yoksa başkalarının kodları içinde dolaşmak iyi gelebilir:
Google Kod Arama, her programlama dilinde
http://www.google.com/codesearch
Pastie, kod yapıştırma ve arama
http://pastie.caboo.se/
December 26th, 2007 at 7:10 pm
pastie irc.freenode.org #rubyonrails ve bilimum kanalla senkron gidiyor. irc http çalışan güzel bi eggdrop script yazılmış.
pastie yi hazirlayan arkadasin diger bir projesi olan BEAST i de kontrol etmenizi şiddetle öneriyorum.
http://beast.caboo.se/
beast de challenge railsde 500 satırı aşmadan forum yazabilir miyiz? miş. railsde 500 satırı aşmadan neler yapılabildiğini görünce insanın gözleri doluyor.
aynı tayfadan geliyor:
http://www.mephistoblog.com/
December 26th, 2007 at 7:22 pm
Bazen hiç bir şeyin cevabı yoksa başkalarının kodları içinde dolaşmak iyi gelebilir:
http://www.gnu.org/
:wq
December 26th, 2007 at 7:31 pm
Yein bir Rails projesine başlarken örnek uygulama ile yola çıkmak da pek çok işi kolaylaştırıyor. Mesela kullanıcı sistemi hazır olan, belli başlı gerek şart eklentileri önceden yüklenmiş… şurada çeşitli derecelerde hazır rails app bulabilirsiniz:
http://sample.caboo.se/
Yeni başlayanlar için tavsiye etmem, ancak olaylari biraz kaptıysanız, böyle hazır kodlardan bir çok şey, yeni kodlama örüntüsü (”pattern”) öğrenebilir alışkanlık yapabilirsiniz.
December 26th, 2007 at 7:38 pm
burak çok teşekkürler mükemmel bir kaynak! bundan haberim yoktu
:)
December 26th, 2007 at 10:41 pm
will_paginate + AJAX
http://www.railsontherun.com/2007/9/27/ajax-pagination-in-less-than-5-minutes
will_paginate + acts_as_taggable (etiket teknolojisi)
http://blog.wolfman.com/articles/2007/07/30/paginating-acts_as_taggable-with-will_paginate
will_paginate + ferret (çok hızlı metin arama, sonuç sayfası için)
http://opensoul.org/2007/8/17/acts_as_ferret-will_paginate
Kaynak: will_paginate geliştiricisi err ekibi
December 28th, 2007 at 7:05 pm
Ruby’de iki dizinin kesişimi için OR bileşimi için AND işareti:
a = [1, 2, 3, 4, 5]
b = [3, 4, 5, 6, 7]
a | b #=> [1, 2, 3, 4, 5, 6, 7]
a & b #=> [3, 4, 5]
March 4th, 2008 at 9:14 pm
Ruby
modulofonksiyonu bir bölümde kalan değeri verir. Genelde sürekli değişen sayıları belli bir aralıkta tutmak için kullanılır.13.modulo(4) #=> 113.modulo(5) #=> 3
divmodhem kalanı hem sonucu (bir dizi olarak) verir:13.divmod(2) #=> [6, 1]13.divmod(5) #=> [2, 3]
Ayrıca Processing ile yapılmış görsel
moduloörneğine bakmanızı tavsiye ederim:http://processing.org/learning/examples/modulo.html