İçeriğe geç

Ruby on Rails Haftası #7 | MVC – Controller

Tahmini Okuma Süresi: 7 dakika

Önceki yazımızda Rails’in Migration özelliğini öğrendik ve örnek kitap tanıtım uygulamamızda kullandık. Bugün de aynı uygulamamızda veri tabanına ekleme,listeleme, güncelleme ve silme gibi (CRUD) yöntemleri tanımlayacağız.

Ruby on Rails Haftası #6

Rails Controller, uygulamanızın mantıksal merkezidir. Kullanıcı, görünümler ve model arasındaki etkileşimi koordine eder. Controller ayrıca bir dizi önemli yan hizmeti de gerçekleştirmektedir.

  • Önbellekleme işlemlerini yönetir ve bu sayede uygulamalarda performans artışı sağlar.
  • Görünüm şablonlarının yeteneklerini kodlara etki etmeden genişleten yardımcı modülleri yönetir.
  • Oturumları yönetir, kullanıcılara uygulamalarımızla devam eden bir etkileşim izlenimini verir.

Controller yaratma işlemi çok kolaydır ve bir model oluşturmak için zaten kullandığımız işleme benzer. Bu yüzden basit ve eğlenceli bir yazı olacak. İşte başlıyoruz. 🙂

Burada sadece bir Controller oluşturacağız:

 library\> ruby script/generate controller Book

Kitabı büyük harfle kullandığınıza ve tekil formu kullandığınıza dikkat edin. Bu, bir Controller oluşturduğunuzda dikkat etmeniz gereken bir Rails paradigmasıdır.

Bu komut, App / controllers / book_controller.rb adlı bir dosya oluşturur.

book_controller.rb’ye bakarsanız, onu aşağıdaki gibi bulacaksınız:

book_controller.rb dosyasında birkaç yöntem taslağı tanımlayalım. İhtiyacınıza bağlı olarak, bu dosyada istediğiniz sayıda fonksiyon tanımlayabilirsiniz.

Dosyayı aşağıdaki gibi görünecek şekilde değiştirin ve değişikliklerinizi kaydedin. Bu yöntemlere vermek istediğiniz isimler size aittir, ancak alakalı isimleri vermek her zaman daha iyidir.

Şimdi tüm yöntemleri tek tek uygulamaya başlayalım.

List Methodunu Yazalım

Liste yöntemi, veritabanındaki tüm kitapların çıktısını verir. Bu işlevsellik aşağıdaki kod satırlarıyla sağlanacaktır.

Liste yöntemindeki @books = Book.all satırı, Rails’e kitaplar tablosunda arama yapmasını ve bulduğu her satırı @books örnek nesnesinde saklamasını söyler.

Show Methodunu Yazalım

Show yöntemi, tek bir kitapta yalnızca daha fazla ayrıntı gösterir. Bu işlevsellik aşağıdaki kod satırlarıyla sağlanacaktır.

Show yönteminin @book = Book.find (params [: id]) satırı, Rails’e yalnızca params [: id] içinde tanımlanan kimliği olan kitabı bulmasını söyler.

Params nesnesi, yöntem çağrıları arasında değerler iletmenizi sağlayan bir kapsayıcıdır.

Örneğin, liste yöntemi ile çağrılan sayfada olduğunuzda, belirli bir kitap için bir bağlantıyı tıklayabilir ve şablonun belirli kitabı bulabilmesi için params nesnesi aracılığıyla o kitabın kimliğini geçirir.

New Methodunu Yazalım

New yöntemi isminden de anlaşılacağı üzere, Rails’e yeni bir nesne oluşturacağınızı bildirir. Öyleyse bu metoda aşağıdaki kodu ekleyelim.

Yukarıdaki yöntem, kullanıcıya kendisinin giriş yapabileceği bir sayfa görüntülerken çağrılır. Burada ikinci satır veritabanından tüm konuları alır ve onları @subjects adlı bir diziye koyar.

Create Methodunu Yazalım

HTML formunu kullanarak kullanıcı girdisini aldıktan sonra, veritabanına bir kayıt oluşturmamız gerekiyor. Bunu yapmak için, book_controller.rb dosyasındaki create yöntemini aşağıdaki ile eşleşecek şekilde düzenleyin:

İlk satır, kullanıcı tarafından gönderilen veriden inşa edilmiş bir Kitap nesnesi tutan @book adlı yeni bir örnek değişken oluşturur. Book_params yöntemi ise tüm alanları object: books alanından toplamak için kullanılır. Veriler params nesnesini kullanarak yeni bir yöntemden geçirilmiş oluyor.

Bir sonraki satır, nesne veritabanına doğru kaydedildiğinde kullanıcıyı list yöntemine yönlendiren koşullu bir deyimdir. Kaydetmezse, kullanıcı new yöntemine gönderilir. Redirect_to yöntemi, bir web sayfasında bir meta yenileme gerçekleştirme işlemine benzer: kullanıcı etkileşimi olmadan sizi otomatik olarak hedefinize yönlendirir.

Sonra @subjects = Subject.all, verileri başarıyla kaydetmemesi ve new methoduna dönmesi halinde benzer durumda olmasını sağlar.

Edit Methodunu Yazalım

Edit yöntemi, show yöntemiyle hemen hemen aynı görünüyor. Her iki yöntem de, kimliğine dayanan tek bir nesneyi almak ve bir sayfada görüntülemek için kullanılır. Tek fark ise haliyle Show methodunun düzenlenemiyor olmasıdır. 🙂

Update Methodunu Yazalım

Bu yöntem, kullanıcı bir veriyi değiştirip değişiklikleri veritabanında güncellemek istediğinde düzenleme yönteminden sonra çağrılır.

Delete Methodunu Yazalım

Bir kaydı veritabanından silmek istersek, bu yöntemi kullanırız.

Konuları Listeleyecek bir Method Yazalım

Verilen bir konuyu temel alarak tüm kitaplara göz atmak için kullanıcılarınıza bir kolaylık kazandırmak istediğimizi varsayalım. Bunun için book_controller.rb dosyamıza şöyle bir ekleme yapmak yerinde olacaktır.

Sırada Ne Var?

Arka planda çalışacak hemen hemen tüm yöntemleri yazdık. Ardından, işlemler için yolları (URL’leri) tanımlayacağız.

Bugün önceki yazılarımıza oranla daha teknik ve kod dolu bir yazı yazdık, ihtiyacımız olan methodları controller katmanında oluşturduk ve sırada onları aktif bir şekilde adresleme (URL) yaparak gösterme işlemine geçmek var. Bugünün içeriklerini mutlaka oluşturarak eksikleri ya da istediğiniz ekstra özellikleri tamamlamayı unutmayın. Paylaşarak destek olmanız, hepimizin öğrenmesine fayda sağlayacaktır. 🙂

Kaynaklar

https://www.tutorialspoint.com/ruby-on-rails/

Rails Controller

2 Yorum

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir