İçeriğe geç

Ruby on Rails Haftası #9 | MVC – View Katmanı

Tahmini Okuma Süresi: 8 dakika

Merhabalar, 8. yazımızda, Rails Routing özelliğinden bahsetmiş ve URL yapılandırmasını öğrenmiştik. Bugün artık, MVC mimarisinde View yani Görünüm katmanına geçiyoruz. Bu katmanda amacımız uygulamamızı kullanacak olan insanların işini kolaylaştıracak arayüzler tasarlamak olacak. Dilerim keyifli ve bol eğitim dolu bir yazı olur. 🙂

Ruby on Rails Haftası #8 | Rails Routes

View Katmanı

Rails Görünüm katmanı, karşılıklı erişilebilir değişkenler aracılığıyla controller ile verileri paylaşan bir ERb programdır.

Kitaplık uygulamamızın app / views dizinine bakarsanız, oluşturduğumuz controllerların her biri için bir alt dizin göreceksiniz: book. Bu alt dizinlerin her biri, aynı adlı controller generate komutuyla oluşturulduğunda otomatik olarak oluşturuldu. Rails, her yeni yöntem için görüntüleme dosyasını oluşturmanız gerektiğini bildirir.

Controllerda tanımladığınız her methodun, methodun topladığı verileri görüntülemek için aynı adı taşıyan ve ona karşılık gelen bir erb dosyası olması gerekir.

Bu nedenle, book_controller.rb’de tanımladığımız tüm yöntemler için görüntü dosyaları oluşturalım.

List Methodu için View Oluşturmak

En sevdiğiniz metin düzenleyicisini kullanarak list.html.erb adlı bir dosya oluşturun ve bunu app / views / book dizinine kaydedin. Dosyayı oluşturup kaydettikten sonra web tarayıcınızı yenileyin. Boş bir sayfa görmelisiniz;

Bunu yapamazsanız, dosyanızın yazım denetimini kontrol edin ve controller katmanında yazdığımız yöntem ile tam olarak aynı olduğundan emin olun.

Şimdi, gerçek içeriği görüntüleyin. Aşağıdaki kodu list.html.erb’ye yerleştirelim.

Çalıştırılacak bu kod, @books dizisinin içinde herhangi bir nesne olup olmadığını kontrol etmektedir. Dizi, boşsa, .blank? methodu true, herhangi bir nesne içeriyorsa false döndürür. Bu @books nesnesi list yönteminde controllerda oluşturuldu.

<%=  %> Etiketleri arasındaki kod bir link_to yöntem çağrısıdır. Link_to’nun ilk parametresi, <a> etiketleri arasında görüntülenen metindir. İkinci parametre, bağlantı tıklandığında hangi eylemin çağrıldığıdır. Bu durumda show methodu oluyor. Son parametre, params nesnesi aracılığıyla iletilen kitabın ID değeridir.

New Methodu için View Oluşturmak

Şimdiye kadar, kütüphanemizde herhangi bir kitap yok. Sistemde birkaç kitap oluşturmamız gerekiyor. Bu nedenle, book_controller.rb’de tanımlanan new yöntemiyle ilgili bir görünüm tasarlayalım.

Metin düzenleyicisini kullanarak new.html.erb adlı bir dosya oluşturun ve onu app / views / book’a kaydedin. Aşağıdaki kodu new.html.erb dosyasına ekleyin.

Burada form_tag yöntemi, kendisine verilen tüm bilgileri kullanarak Ruby kodunu normal bir HTML <form> etiketine çevirir. Bu etiket, örneğin, aşağıdaki HTML çıktılarını verir:

Sonraki yöntem, bir <input> metin alanı çıktısı text_field’dir. Text_field parametreleri nesne ve alan adıdır. Bu durumda, nesne kitaptır ve adı başlıktır.

Rails yöntemi collection_select olarak adlandırılır, @books gibi bir diziden oluşturulmuş bir HTML seçme menüsü oluşturur. Beş parametresi vardır, şu şekilde sıralanabilir:

  • :book – İşlediğin nesne. Bu durumda, bu bir kitap nesnesi.
  • :subject_id – Kitap kaydedildiğinde doldurulan alan.
  • @books – O anda çalıştığımız dizi (array).
  • :id – Veritabanında saklanan değer. HTML açısından, bu <option> etiketinin değer parametresidir.
  • :name – Kullanıcının açılan menüde gördüğü çıktı. Bu <option> etiketleri arasındaki değerdir.

Tarayıcınıza gidin ve http://localhost:3000/book/new adresini ziyaret edin. Bir form oluşturduğunuzu ve kitap bilgilerini içerecek alanlara sahip olduğunuzu göreceksiniz. Tebrikler 🙂

Bu formda bazı verileri girin ve ardından Create düğmesini tıklayın.

Oluştur düğmesini tıkladığınızda, bu yöntem listeleri veya sonuçları görüntülemek için yeni yöntemler kullandığı için, herhangi bir görünüme ihtiyaç duymayan oluşturma yöntemini çağıracağı anlamına gelir.

Verilerinizi girdikten sonra tarayıcıda adres çubuğuna http://localhost:3000/book/list yazarak, eklediğiniz kitabı ekranda görebilirsiniz.

Bağlantıyı tıklarsanız, show yönteminin şablon dosyasını henüz oluşturmadığımız için başka bir şablonun eksik olduğunu belirten bir hata göreceksiniz. Hadi o zaman Show görünümünü oluşturalım.

Show Methodu için View Oluşturmak

Bu yöntem kitaplıkta bulunan herhangi bir kitapla ilgili eksiksiz ayrıntıları görüntüler. App / views / book altında bir show.html.erb dosyası oluşturun ve aşağıdaki kodu doldurun:

Burada ilk defa, birbirleri ile ilişkili nesnelerin tüm detaylarına erişmemizi sağlayan kodları kullandık.

Kullanılan biçim @variable.relatedObject.column’dur. Bu durumda, öznenin ad değerini @book değişkeninden belongs_to ilişkilendirmelerini kullanarak çekebilirsiniz. Listelenen herhangi bir kaydı tıklarsanız new görünümünde verdiğiniz bilgileri gösterecektir.

Edit Methodu için View Oluşturmak

Edit.html.erb adlı yeni bir dosya oluşturun ve bunu app / views / book’a kaydedin. Aşağıdaki kodu doldurun:

Bu kod, bir kimliği oluşturmak ve tanımlamak yerine güncelleme eylemini gerçekleştirektir, new yöntemiyle aynı alanlara ihtiyaç duyduğundan dolayı çok benzerdir.

Bu senaryoda, form eylemi için form_for etiketini kullandık. Form_tag’dan daha iyi performans gösterecektir. Neden, çünkü Modelle kolayca etkileşim kuracağından. Bu nedenle, model ve form alanları arasındaki etkileşime her ihtiyaç duyduğunuzda form_for etiketini kullanmak daha iyidir.

Bu noktada, liste yönteminin görünüm dosyasında bazı değişikliklere ihtiyacımız var. <li> </ li> öğesine gidin ve aşağıdaki gibi görünecek şekilde değiştirin:

Şimdi, http://localhost:3000/book/list kullanarak kitaplara göz atmayı deneyin. Düzenle seçeneğiyle birlikte tüm kitapların listesini verir. Şimdi, bu bilgiyi düzenleyip Save Changes düğmesini tıklayın. Bu, controller dosyasında kullanılabilir update yöntemini çağırır ve değişen tüm nitelikler güncelleştirilir. Update yönteminin sonuçlarını göstermek için view veya edit yöntemleri kullandığı için herhangi bir görüntüleme dosyasına ihtiyaç duymadığına dikkat edin.

Delete Methodu için View Oluşturmak

Ruby on Rails’i kullanarak bir veritabanından bilgi kaldırmak neredeyse çok kolay. Bu yöntem sonuç listesini görüntülemek için liste yöntemini kullandığından, delete yöntemi için herhangi bir görünüm kodu yazmanız gerekmez. Böylece, yalnızca list.html.erb’yi tekrar değiştirip bir silme bağlantısı eklememiz yeterli olacaktır.

<li> </ li> öğesine gidin ve aşağıdaki gibi görünecek şekilde değiştirin:

:confirm parametresi, eylemi gerçekten gerçekleştirmek isteyip istemediğinizi soran bir JavaScript onay kutusu sunar. Kullanıcı OK (Tamam) düğmesini tıklatırsa, işlem devam eder ve öğe silinir.

Şimdi, http: // localhost: 3000 / book / list kullanarak kitaplara göz atmayı deneyin. Edit ve Delete seçenekleriyle birlikte tüm kitapların listesini verecektir.

Şimdi Delete seçeneğini kullanarak, listelenen kayıtları silebilirsiniz.

Umarım Rails’in tüm organizasyonunu gördüğünüz ve uyguladığınız için mutlu hissediyorsunuzdur. Birçok ilişkinin diğer web frameworklere kıyasla ne kadar kolay olduğunu hep birlikte gördük.

Bir sonraki bölümde, verilerinizi daha iyi bir şekilde yerleştirmek için Layouts kullanımını açıklayacağız. Size, Rails uygulamalarınızda CSS’i nasıl kullanacağınızı göstereceğiz. Yorumlarınız ve paylaşımlarınızla destek olmayı unutmayın. 🙂  İyi çalışmalar.

Kaynaklar

Rails View

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

Tek Yorum

Bir Cevap Yazın

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