A Ruby on Rails alapjainak megértése: HTTP, MVC és Routes

Az első programozási nyelv megtanulása után megkérdezheti, hogy mit tehet a programozással: AI / Machine Learning? Hardver fejlesztés? Mobilalkalmazások? Vagy esetleg el akarja kezdeni a webes alkalmazások fejlesztését! :)

Itt megértjük az internet, az útvonalak és az MVC architektúra működésének alapjait a Ruby on Rails webkeret használatával. Merüljünk el a webes világban.

Mielőtt megtanulná a webes fejlesztést a Rails használatával, azt javaslom, hogy először ismerje meg a Rubyt .

Hogyan működik a web?

A weben van egy csomó réteg (alkalmazás, TCP, Internet, hardver réteg), amelyek mind kapcsolódnak. De alapvetően a HTTP-n ( Hypertext Transfer Protocol ) keresztül működik .

A Hypertext Transfer Protocol ( HTTP ) egy elosztott, együttműködő, hipermédia információs rendszerek alkalmazásprotokollja. - Wikipédia

A HTTP úgy működik, mint egy kérés-válasz ciklus az ügyfél-kiszolgáló modellben.

Van webböngészőnk (például Google Chrome). Tehát beírjuk az www.google.comURL-t, és az ügyfél elküldi a HTTP kérést (kérés üzenetet) a szervernek . A szerver visszaadja a HTTP választ (válaszüzenet - ebben az esetben a válasz a Google webhelyéről származó HTML).

Az ügyfél megteszi a kérést és megkapja a választ a szervertől . Az ügyfél kezeli a felhasználói felületet és a felhasználói interakciókat. A szerveren tárolhatunk és visszakereshetünk adatokat (adatbázisokban), feldolgozhatjuk a háttérben a logikát (dolgozók / munkák) és még sok minden mást.

Ha mélyen meg akarja érteni, javaslatot teszek néhány forrásra. Nagy rajongója vagyok Preethi bejegyzéseinek. Itt egy 3 részből álló sorozat :

  • A webfejlesztés újoncainak alapja
  • Kliens-kiszolgáló modell és egy webalkalmazás felépítése
  • HTTP és REST

Az MVC architektúra és a Rails Routes

Most, hogy megértettük a web működését, megvizsgáljuk az MVC architektúráját és a Rails Routes-t.

Az MVC jelentése Model, View és Controller.

Ezen az architektúrán a modellek, a nézetek és a vezérlők között az „ aggodalmak el vannak választva. Minden résznek megvan a maga felelőssége. Merüljünk el az egyes részekben.

Modell

„Fenntartja a kapcsolatot az objektum és az adatbázis között, és kezeli az érvényesítést, társítást és tranzakciókat”

Ez azt jelenti, hogy a modell rendkívüli kapcsolatot fog fenntartani az adatbázissal . Mindegyik modell ábrázolhat egy adatbázistáblát (SQL adatbázisok esetén). Ez a modellobjektum (az ActiveRecord - Rails osztálytól örökölt) képességeket nyer az adatok lekérésére, mentésére, szerkesztésére és törlésére az adatbázis táblából. A modell objektumokat rétegként használjuk az alkalmazásunk és az adatbázis között.

Az adatbázissal való kapcsolat mellett a modell érvényesítéseket és asszociációkat hozhat létre a modellek között.

Kilátás

"Adatok bemutatása egy bizonyos formátumban, kiváltva az adatkezelő döntésétől az adatok bemutatására."

Ez a kérelem válaszának bemutatása . Ez a bemutató sokféle formátumban lehet: PDF, HTML, JSON stb. A nézet végeredménye valószínűleg a felhasználói felület (UI) lesz - az „Ügyfél” része.

A webes oldalak többségében a nézetek CSS és JS stílusú HTML-formátumúak lesznek. De a felhasználói viselkedés PDF fájljait implementálhatjuk egy Travel digitális termékre, hogy megmutassuk az összes alkalmazottnak, hogyan használják az emberek a weboldalukat.

Vezérlő

"Az alkalmazáson belüli szolgáltatás, amely irányítja a forgalmat, egyrészt lekérdezi a modelleket konkrét adatokra, másrészt ezeket az adatokat (keresés, rendezés) egy adott nézet igényeinek megfelelő formába rendezi."

A vezérlő a „Maestro”. Gondoskodik a folyamatról: modellek segítségével lekérdezéseket végez, elemzi az adatokat, és döntéseket hoz arról, hogy mely formátumban fogja bemutatni az adatokat.

Az MVC és az Útvonalak ciklus egy Rails alkalmazáson

Tehát képzelje el, hogy egy Travel Startupnál dolgozunk. A termék része az utazási történetekről szóló nagyszerű cikkek és tippek felsorolása az utazók számára.

Gondoljon csak az utazó szemszögéből. www.worldpackers.com/articlesMeglátogat egy gyönyörű oldalt , és egy csomó remek cikket sorol fel.

Amikor beírja ezt az URL-t a böngészőbe, kérést küld a szervernek. A szerveren van a Rails webalkalmazás. A Rails Router ellenőrzi, hogy van-e a kért URL-nek megfelelő bejegyzés.

Csak be kell állítanunk a vonal útvonalait:

Ez RESTful útvonalakat hoz létre a cikkekhez. Ha futunk bundle exec rake routes, akkor megjelenik a létrehozott utak listája.

A HTTP ige lehet GET, POST, PATCH, PUTvagy DELETE. És tudjuk, hogy a Rails hogyan térképezi PATHfel jobbra controllerés balra action. Bővebben itt olvashat.

Esetünkben a kiszolgáló megkapja az /articleselérési utat és GETHTTP igeként. Feltérképezi ArticlesControllerés indexcselekszik.

A vezérlőArticlesController használjuk a modelltArticle , hogy minden cikkek az adatbázisban, és teszi a nézőindex.html.erb , mint a szerver (UI).

Megállapodás alapján ez a vezérlő a nézetet megjeleníti views/articles/index.html.erb. Alapvetően ez egy sima HTML fájl, amelyet a Ruby hajt.

A Rails kérés-válasz ciklus az egyik első fogalom, amelyet meg kell értenie, amikor elkezdi tanulni a webfejlesztést.

A felhasználó dolgokat csinál (kéréseket küld a szervernek), a Rails alkalmazás rendelkezik az útválasztóval az URL útvonalának a megfelelő vezérlőhöz való leképezéséhez. A vezérlőben mindent megtehetünk egy modellel (vagy egynél több modellel) - vagyis adatok megszerzésével, mentésével, szerkesztésével, törlésével -, és megjelenítést nyújthatunk a felhasználó számára.

Ez minden!

Sokat tanultunk itt. Remélem, srácok értékelik a tartalmat, és többet megtudhatnak arról, hogy az MVC architektúrája és útválasztása hogyan működik a Rails-en.

Ez még egy lépés előre a Rails és a webfejlesztés elsajátítása és elsajátítása terén. A teljes utam dokumentációját itt tekintheti meg a Renaissance Developer kiadványomon .

Ha szeretne egy teljes Ruby and Rails tanfolyamot, tanuljon valós kódolási készségeket és építsen projekteket, próbálja ki az Egy hónap Ruby Bootcampés a Rails Bootcamp . Találkozunk ott ☺

Érezd jól magad, és tanulj tovább és kódolj.

Saját Twitter és Github. ☺