We are searching data for your request:
Upon completion, a link will appear to access the found materials.
Raylar Uygulama Akışı
Kendi programlarınızı baştan sona yazarken akış kontrolünü görmek kolaydır. Program burada başlar, orada bir döngü var, yöntem çağrıları burada, hepsi görülebilir. Ancak bir Rails uygulamasında, işler o kadar basit değildir. Her türlü çerçeve ile, "akış" gibi şeylerin kontrolünü, karmaşık işleri yapmak için daha hızlı veya daha basit bir yol lehine bırakıyorsunuz. Ruby on Rails durumunda, akış kontrolünün hepsi perde arkasında yapılır ve geriye kalan tek şey (az ya da çok) bir model, görüntü ve kontrolör koleksiyonudur.02: 07
HTTP
Herhangi bir web uygulamasının çekirdeğinde HTTP bulunur. HTTP, web tarayıcınızın bir web sunucusuyla konuşmak için kullandığı ağ protokolüdür. "Request", "GET" ve "POST" gibi terimlerin geldiği yer burasıdır, bu protokolün temel kelimeleridir. Ancak, Rails bunun bir soyutlaması olduğu için, bunun hakkında konuşmaya fazla zaman harcamayız.
Bir web sayfasını açtığınızda, bir bağlantıyı tıkladığınızda veya bir web tarayıcısında bir form gönderdiğinizde, tarayıcı TCP / IP üzerinden bir web sunucusuna bağlanacaktır. Tarayıcı daha sonra sunucuya bir "istek" gönderir, tarayıcının doldurduğu ve belirli bir sayfada bilgi isteyen bir posta formu gibi düşünür. Sunucu sonuçta web tarayıcısına bir "yanıt" gönderir. Ruby on Rails, web sunucusu değil, web sunucusu Webrick'ten (genellikle bir Rails sunucusunu komut satırından başlattığınızda ne olur) Apache HTTPD'ye (web'in çoğuna güç veren web sunucusu) herhangi bir şey olabilir. Web sunucusu sadece bir kolaylaştırıcıdır, talebi alır ve yanıtı oluşturan ve ileten tekrar istemciye geri gönderen sunucuya geri gönderen Rails uygulamanıza verir. Yani şu ana kadarki akış:
İstemci -> Sunucu -> Raylar -> Sunucu -> İstemci
Ama "Rails" bizim gerçekten ilgilendiğimiz şey, hadi daha derine inelim.03 07
Yönlendirici
Bir Rails uygulamasının bir istekle yaptığı ilk şeylerden biri, yönlendirici aracılığıyla göndermektir. Her isteğin bir URL'si vardır, bu bir web tarayıcısının adres çubuğunda görünen şeydir. Yöneltici, söz konusu URL ile ne yapılması gerektiğini, URL mantıklıysa ve URL'nin herhangi bir parametre içerip içermediğini belirler. Yönlendirici yapılandırılmışconfig / routes.rb.
Öncelikle, yönlendiricinin nihai hedefinin bir URL'yi denetleyici ve eylemle eşleştirmek olduğunu öğrenin (daha sonra bunlarda daha fazlası). Rails uygulamalarının çoğu RESTful olduğundan ve RESTful uygulamalarındaki şeyler kaynaklar kullanılarak gösterildiğinden, aşağıdaki gibi satırları göreceksiniz.kaynaklar: gönderiler Tipik Rails uygulamalarında. Bu, gibi URL’lerle eşleşir/ Mesajlar / 7 / düzenle Mesajlar denetleyicisi ileDüzenle 7 kimliğiyle Postadaki eylem. Yönlendirici sadece isteklerin nereye gideceğine karar verir. Böylece Rails bloğumuz biraz genişletilebilir.
Yönlendirici -> Raylar
Kontrol eden, denetleyici
Artık yönlendirici, isteğin hangi denetleyiciye gönderileceğine ve bu denetleyicinin hangi eyleme gönderileceğine karar vermiştir. Denetleyici, bir sınıfta bir araya getirilmiş bir grup eylemdir. Örneğin, bir blogda, blog gönderilerini görüntülemek, oluşturmak, güncellemek ve silmek için gereken tüm kodlar "Posta" adlı bir denetleyicide bir araya getirilir. Hareketler sadece bu sınıfın normal yöntemleridir. KontrolörlerUygulamanın / kontrolörleri.
Diyelim ki web tarayıcısı bir istek gönderdi./ İleti / 42. Yönlendirici, bununposta denetleyicigöstermek yöntemi ve gösterilecek gönderinin kimliği42, bu yüzden çağırırgöstermek Bu parametre ile yöntemi.göstermek yöntemi, verileri almak için modeli kullanmaktan ve çıktıyı oluşturmak için görünümü kullanmaktan sorumlu değildir. Böylece genişlemiş Rails bloğumuz şuan:
Router -> Denetleyici # işlemi07: 05
Model
Model, anlaşılması en kolay ve uygulanması en zor olanıdır. Veri tabanı ile etkileşimden Model sorumludur. Bunu açıklamanın en basit yolu modeldir, tüm etkileşimleri işleyen (okuma ve yazma) veritabanından düz Ruby nesnelerini döndüren basit bir yöntem çağrıları kümesidir. Bu nedenle blog örneğini izleyerek, denetleyicinin modeli kullanarak veri almak için kullanacağı API gibi görünecek.Post.find (params: id).parametreler Yönelticinin URL’den ne ayrıştırdığı, Post modelidir. Bu, SQL sorguları yapar veya blog gönderisini almak için ne gerekiyorsa yapar. Modeller yer almaktadırUygulamanın / modeller.
Tüm eylemlerin bir model kullanması gerekmediğine dikkat etmek önemlidir. Modelle etkileşimde bulunmak, yalnızca verilerin veritabanından yüklenmesi veya veritabanına kaydedilmesi gerektiğinde gereklidir. Bu nedenle, küçük akış şemamıza bundan sonra bir soru işareti koyacağız.
Router -> Denetleyici # eylem -> Model?06: 07
Görünüm
Sonunda, biraz HTML oluşturmaya başlamanın zamanı geldi. HTML, denetleyici tarafından işlenmez ve model tarafından işlenmez. Bir MVC çerçevesi kullanmanın amacı her şeyi bölümlere ayırmaktır. Veritabanı işlemleri kipte kalır, HTML üretimi görünümde kalır ve denetleyici (yönlendirici tarafından çağrılır) her ikisini de çağırır.
HTML normalde gömülü Ruby kullanılarak üretilir. PHP'ye aşina iseniz, yani içine gömülü PHP kodu olan bir HTML dosyası demek ki gömülü Ruby çok tanıdık olacaktır. Bu görünümlerUygulamanın / görünümlerve bir denetleyici, çıktısını üretmek ve web sunucusuna geri göndermek için bunlardan birini arayacaktır. Model kullanılarak kontrolör tarafından elde edilen herhangi bir veri genellikle, bazı Ruby sihirleri sayesinde, görünüm içinden örnek değişkenler olarak mevcut olacak bir örnek değişkeninde saklanır. Ayrıca gömülü Ruby'nin HTML oluşturması gerekmez, herhangi bir tür metin üretebilir. Bunu RSS, JSON, vb. İçin XML oluştururken göreceksiniz.
Bu çıktı, işlemi web tarayıcısına geri gönderir ve işlemi web tarayıcısına geri gönderir.07 07
Komple Resim
İşte bu, bir Ruby on Rails web uygulamasına yapılan bir isteğin ömrü.
- Web Tarayıcı - Tarayıcı, genellikle bir bağlantıyı tıklattığında kullanıcı adına isteği yapar.
- Web Sunucusu - Web sunucusu isteği alır ve Rails uygulamasına gönderir.
- Yönlendirici - Rails uygulamasının isteği gören ilk kısmı olan yönlendirici, isteği ayrıştırır ve hangi denetleyici / eylem çiftini çağırması gerektiğini belirler.
- Denetleyici - Denetleyici denir. Kontrolörün işi, modeli kullanarak veriyi almak ve bir görünüme göndermek içindir.
- Model - Herhangi bir verinin alınması gerekiyorsa, model veri tabanından veri almak için kullanılır.
- Görünüm - Veri, HTML çıktısının üretildiği bir görünüme gönderilir.
- Web Sunucusu - Oluşturulan HTML sunucuya geri gönderilir, Rails artık istekle biter.
- Web Tarayıcı - Sunucu verileri web tarayıcısına geri gönderir ve sonuçlar görüntülenir.