If you,
  • use Windows PC
  • want to develop Ruby on Rails application
  • want to host it on Heroku
  • want to check out source code using Git
there are couple of installations and settings before doing those.

These are as follows:
  • Installing Git Extension
  • Installing Rubygems
  • Installing Heroku gem
  • Createting an SSH key file
  • Adding keys to Heroku
You will probably need more than these, but these are minimums to get the code from the Heroku repository.

Create an SSH key file


After you installed these minimums, you run GitBash and create an SSH key for Heroku use.

$ cd ~/
$ mkdir .ssh
$ cd .ssh
$ ssh-keygen –C “youremai@yourmail.com” –t rsa

Add your keys to heroku

You add this key to Heroku for later check outs and check ins

$ heroku keys:add

Checking out the source code

You check out the code by using clone option of git

$ git clone -o heroku git@heroku.com:yourapp.git
 
 
Eğer Ruby on Rails ile uygulama geliştiriyorsanız fixture'ları kullanmışsınızdır. Fixture'lar YAML veya CSV biçimindeki metin dosyalarıdır ve test veritabanınızı doldurmak için kullanılır. Bu çok karmaşık olmayan veri tabanı şemaları için uygun ve etkin bir çözümdür.  Ancak, modellerinizin sayısı artıp sisteminiz karmaşık hale gelmeye başlayınca fixture'ları yönetmek zorlaşmaya başlar. Birbirine bağımlı olmaya başlayan fixture'lari birbirini etkilemeyecek şekilde arttırmaya veya düzenlemeye çalışmak vakit alır ve pratik olmaktan çıkarlar. Bu durumda FixtureReplacement gibi bir plugin kullanıp işlerinizi kolaylaştırabilirsiniz.

FixtureReplacement fixture'lardaki dezavantajları ortadan kaldırır. FixtureReplacement naıl kullanıldığını merak ediyorsanız "http://github.com/smtlaissezfaire/fixture-replacement-git/tree/master":http://github.com/smtlaissezfaire/fixture-replacement-git/tree/master adresindeki readme'ye bir göz atın derim. Çok basit bir kullanımı olduğunu göreceksiniz.

Geçenlerde FixtureReplacement kullanırken bir sorunla karşılaştık ama basit bir alternatif yöntem kullanarak bu sıkıntıyı aştık. Problem FixtureReplacement'ın primary key'i olmayan bir tablo için 'create' methodunun çalışmamasıydı. Diğer bir deyişle eğer tablonuzda bir 'id' alanı yok veya modelinizde 'set_primaty_key' ile bir alanı primary key olarak seçmediyseniz ActiveRecord'ın 'create' methodunu kullanan FixtureReplacement bu yüzden hata veriyor. Örneğin,

Kedi tablomuz olsun ve alanları şöyle olsun:

ad, cins,  goz_rengi, tuy_rengi, kilo

Bu modeli FixtureReplacement sunduğu yöntemle (create_model) şu şekilde yaratmaya çalışalım

create_kedi(
:ad => "Sarman",
:cins => "tekir",
:tuy_rengi => "sarı",
:goz_rengi => "ela",
:kilo => "6"
)

Sonuç aşağıdaki hata gibi olacaktır.

ActiveRecord::StatementInvalid: PGError: ERROR:  column "id" does not exist

Bunu şu şekilde de denesek sonuç aynı olurdu

Kedi.create(
:ad => "Sarman",
:cins => "tekir",
:tuy_rengi => "sarı",
:goz_rengi => "ela",
:kilo => "6"
)

veya

kedi = Kedi.new(
:ad => "Sarman",
:cins => "tekir",
:tuy_rengi => "sarı",
:goz_rengi => "ela",
:kilo => "6"
)
kedi.save

Doğrudan SQL kullandığımız zaman bu problemin ortadan kalktığını görüyoruz

sql = "INSERT INTO kedi (ad, cins, goz_rengi, tuy_rengi, kilo) VALUES ('Sarman', 'tekir', 'ela', 'sarı', 6)"
ActiveRecord::Base.connection.execute(sql)

h2. Sonuç

FixtureReplacement kullanıyor ve primary key olmayan bir tablonuz varsa create_model (model yerine kendi modellerinizden birini düşünün create_kedi gibi) metodunu kullanamazsınız. Bunun yerine doğrudan SQL çalşıtırmanız testleriniz sırasında size bir çözüm sağlayacaktır.