HELLO, I’M SERHAT AND THIS IS MY FANCY TITLE.

Rails CRUD Cheatsheet


Metod Etki Alanı Örnek Not
new Model Student.new(adi: 'Serhat', soyadi: 'Dundar') Model bir nesneye atandığında, nesnenin save metodu ile kayıt edilmesi gerekir.
new_record? Nesne student.new_record? true veya false döndürür.
attributes Nesne student.attributes attribute'leri hash olarak döndürür.
* attribute_ismi Nesne student.finalnotu = "65" Model ismi komut olarak çağırılarak mümkün attribute'ler listelenebilir.
save Nesne student.save SQL muadili: INSERT INTO. Eğer nesne daha önceden mevcutsa UPDATE.
count Model & Nesne Student.count veyastudent.count SQL muadili: SELECT COUNT(*) FROM "students"
create Model Student.create(adi: 'Serhat', soyadi: 'Dundar') veya; x = {ad: 'Serhat', soyad: 'Dundar'} ve sonra Student.create(x) new metodundan farklı olarak doğrudan save işlemi yapar. SQL muadili: INSERT INTO
find(:id) Model & Nesne Student.find(1) veya Student.find([1,5]) find metodunu bir nesneye atayıp, daha sonra nesneyi çaşitli işlerde kullanabiliriz. SQL muadili: SELECT "students".* FROM "students" WHERE "students"."id" = ? LIMIT 1 [["id", 1]]
first Model & Nesne Student.first SQL muadili: SELECT "students".* FROM "students" ORDER BY "students"."id" ASC LIMIT 1
last Model & Nesne Student.last SQL muadili: SELECT "students".* FROM "students" ORDER BY "students"."id" DESC LIMIT 1
all Model Student.all SQL muadili: SELECT "students".* FROM "students"
class Model & Nesne Student.class [Class] veya student.class [Array] -
size Nesne student.size Nesnenin boyutunu verir.
order Model Student.order('ogrenci_no') SQL muadili: SELECT "students".* FROM "students" ORDER BY ogrenci_no
where Model Student.where(ogrenci_no: '09310009') SQL muadili: SELECT "students".* FROM "students" WHERE "students"."title" = 'My first post'
update_attributes Nesne student.update_attributes(ad: 'Mustafa', ogrenci_no: '08310009') true veya false döndürür.
destroy Nesne & Model Nesne üzerinde kullanım: student = Student.last && student.destroy. Model üzerinde kullanım: Student.last.destroy veya; Student.destroy(1) veya; Student.destroy([1,5]) DELETE FROM students WHERE id = 5; Nesne üzerinde kullanıldığında, kayıt silinmiş olmasına rağmen student nesnesi hala bellekte tutulur, fakat durumu read-only'dir, yani frozen durumdadır.
delete Model Student.delete(1) veya Student.delete([1,5]) find ve create gibi işlemi anında uygularlar. SQL muadili: DELETE FROM "students" WHERE "students"."id" = 1
delete_all Model Student.delete_all("ogrenci_no = 09310009") delete'den farklı olarak şartlı silme işlemlerini yapar. delete_all argümansız çalıştırılırsa tablonun tüm satırlarını siler!
destroy_all Model Student.destroy_all('ogrenci_no = 09310009') delete'den farklı olarak şartlı ve ilişkili silme işlemlerini yapar. destroy_all argümansız çalıştırılırsa tablonun tüm satırlarını ve ilişkili olduğu tüm tabloları siler!
Continue reading
Date: | Tags: ruby on rails dersleri, rails crud işlemleri | Categories: tech, ruby

Ubuntu'da rubymine kurulumu


Ubuntu 12.04 altında RubyMine kurmak için öncelikle sisteminizde Ruby interpreter (irb)'ın kurulu olması gerekiyor. Kurulum için RVM kullanımı önerilse de zorunlu değil. Benim ve komünitenin genel önerisi ise RBenv kullanmanız. Ayrıca sisteminizde Oracle JDK kurulu olması gerekiyor, bunu da daha önce anlatmıştım.

Herşey hazırsa RubyMine arşiv dosyasını indirin. Arşiv dosyasını masaüstüne indirdiğinizi varsayıyorum. Dosyaları arşivden çıkartın.

$ tar xzvf RubyMine-4.5.1.tar.gz

Arşivden çıkarttığınız dosyaları, uçbirimden ulaşmanızın kolay olduğu bir klasöre taşıyın. Ben hepsini home/msdundar/apps altında tutuyorum.

Continue reading
Date: | Tags: ubuntu rubymine kurulum, rubymine kurulumu, rubymine nedir, ruby | Categories: tech, ruby, linux

Ubuntu 12.04 - Oracle JDK Kurulumu


Bir kaç gün önce Ubuntu'mda sürüm yükselterek 12.04'e terfi ettim. Daha önceki sürümde bulunan "unity" kaynaklı pek çok hata bulunuyordu, bir ihtimal bunlar sihirli bir değnek değmişcesine düzelir diye umut ettim ama nafile. Hala unity'de bir takım sıkıntılar var, keza Chrome yine Windows'ta olduğu kadar stabil çalışmıyor (chrome geliştiricileri bundan da unity2d'yi sorumlu tutuyor). Velhasıl, güncelleme akabinde NetBeans'i terk edip daha hafif bir Ruby IDE'si arayışına girdim.

Elbette durduk yere değil, gerek NetBeans'in gittikçe hantallaşan yapısı, kullanmadığım zilyon tane özellik barındırması, 7.x sürümlerinde Ruby desteğini kaldırması (harici olarak devam eden çalışmaları saymıyorum) ve daha pek çok sebepten dolayı NetBeans'le yolları ayırmaya karar verdim. Daha hafif, daha Ruby odaklı ve uzun dönem Ruby desteği sunacak bir IDE ararken, yine nispeten hantal bir IDE olan RubyMine'ı buldum. Aslında buldum demek yanlış, daha önceden de haberdardım fakat ücretli olduğu için hiç sıcak bakmamıştım. IDE'den çok fazla beklentisi olmayan biri olarak, RubyMine yetti de arttı. Üstüne üstlük, başvurduğum "eğitim lisansını" da ücretsiz sağlayarak gönlümde yer edindiler. Kızları gibi gönülleri de güzel olan Çek'li dostlarımızdan da böyle bir davranış beklenirdi zaten.

Continue reading
Date: | Tags: ubuntu oracle jdk, oracle jdk kurulum | Categories: tech, ruby, linux, java

Ruby günlüğü - gün 11


Ruby'de if, elsif, else, unless gibi pek çok kontrol yapısı bulunmaktadır. Bu yazıda kontrol yapılarına ilişkin bazı örnekler gösterceğim.

Ruby'de if ve unless koşulu

Tek satır için basit bir örnek:

yas = 23
puts "Yasiniz yeni yasalara gore alkol almak icin cok kucuk" if yas < 24

Multiple satır için basit bir örnek :

yas = 23
if yas < 23
  puts "Yasiniz yeni yasalara gore alkol almak icin cok kucuk"
end
Continue reading

Ruby günlüğü - gün 10


Ruby'de sözlükler (hash) oldukça geniş alanlarda kullanılabilirler. Bunu Python'da tecrübe etmiştim. Dizilerden bazı anlarda daha maharetli olacaklardır. Dizileri en basit anlamıyla, nesneler grubu olarak tanımlayabiliriz, sözlükler için de aslında bu tanım yanlış olmayacaktır. Diziler, nesnelerin tanımlanmış bir sırada ve biçimde toplu halde bulunmasıdır, hash yani sözlüklerde ise durum biraz daha farklı. Sözlükler dizilerden farklı olarak anahtar-değer mantığı ile çalışır.

sozluk = {'isim' => 'Mustafa Serhat', 'nick' => 'msdundar'}

Burada 2 adet sözlük öğemiz var. Bir tanesi isim diğeri ise nick. Bu öğeler (yani anahtarlar - key), karşılarında ki değere (value) sahip.

Continue reading