Tutorial Ruby on Rails

Ce este Ruby?

Rubin este un limbaj de programare de nivel รฎnalt, interpretat ศ™i orientat pe obiecte. Este un limbaj open-source dinamic, care are o comunitate grozavฤƒ รฎn spate. Ruby a fost conceput pentru simplitate ศ™i productivitate. รŽncurajeazฤƒ scrierea codului de software pentru om ศ™i computerul al doilea. A fost creat de Yukihiro Matsumoto รฎn Japonia รฎn 1995.

Ce este Rails?

Rails este un cadru de dezvoltare scris รฎn Ruby pentru construirea de aplicaศ›ii web. A fost creat ca fundaศ›ia aplicaศ›iei Basecamp ศ™i apoi lansat ca software open-source รฎn 2004. Rails oferฤƒ multe caracteristici ศ™i funcศ›ionalitฤƒศ›i standard รฎncorporate, ceea ce o face o opศ›iune potrivitฤƒ pentru prototiparea ศ™i dezvoltarea MVP.

A fost creat de David Heinemeier Hasson cunoscut รฎn mod popular sub numele de DHH. Este unul dintre cele mai influente ศ™i populare instrumente pentru construirea de aplicaศ›ii web. Este folosit de unele dintre site-urile preferate precum Airbnb, Github, Shopify etc.

De ce ศ™ine?

Iatฤƒ avantajele/beneficiile utilizฤƒrii Rails:

  • Rails este ambalat ca o bijuterie Ruby ศ™i รฎl puteศ›i folosi pentru a construi o varietate de aplicaศ›ii.
  • Vฤƒ permite sฤƒ creaศ›i aplicaศ›ii web obiศ™nuite, aplicaศ›ii de comerศ› electronic, sistem de gestionare a conศ›inutului ศ™i multe altele.
  • Rails este un cadru complet care include tot ce aveศ›i nevoie pentru a crea o aplicaศ›ie web bazatฤƒ pe baze de date, folosind modelul Model-View-Controller.
  • Aceasta รฎnseamnฤƒ cฤƒ toate straturile sunt construite pentru a funcศ›iona perfect รฎmpreunฤƒ cu mai puศ›in cod. Necesitฤƒ mai puศ›ine linii de cod decรขt alte cadre.

Cum sฤƒ descฤƒrcaศ›i ศ™i sฤƒ instalaศ›i Ruby pe Windows

Procesul de instalare va depinde de sistemul dvs. de operare. Veศ›i trece prin instalarea Ruby pe Windows, Mac ศ™i Linux.

Pas 1) Descฤƒrcaศ›i Rubyinstaller
Cel mai simplu mod de a instala Ruby pe dvs Windows computerul este prin Ruby Installer, pe care รฎl puteศ›i descฤƒrca de la https://rubyinstaller.org/.

Tot ce trebuie sฤƒ faceศ›i este sฤƒ rulaศ›i programul de instalare descฤƒrcat.

Pas 2) Faceศ›i clic pe programul de instalare descฤƒrcat
Double- daศ›i clic pe programul de instalare descฤƒrcat โ€žrubyinstaller-2.4.1-2-x64.exeโ€.

Pas 3) Acceptaศ›i licenศ›a
Selectaศ›i butonul radio โ€žAccept licenศ›aโ€ ศ™i faceศ›i clic pe butonul โ€žUrmฤƒtorulโ€. Acest lucru ar trebui sฤƒ vฤƒ aducฤƒ la urmฤƒtoarea figurฤƒ de mai jos:

Descฤƒrcaศ›i ศ™i instalaศ›i Ruby pe Windows

Pas 4) Bifaศ›i primele douฤƒ casete de selectare
Bifaศ›i primele douฤƒ casete de selectare pentru a uศ™ura rularea scripturilor Ruby.

Faceศ›i clic pe butonul โ€žInstalareโ€ pentru a รฎncepe instalarea. Ar trebui sฤƒ vedeศ›i figura de mai jos cรขnd se terminฤƒ instalarea.

Descฤƒrcaศ›i ศ™i instalaศ›i Ruby pe Windows

Pas 5) Faceศ›i clic pe Finalizare
Nu debifaศ›i opศ›iunea casetฤƒ de selectare care instaleazฤƒ MSYS2. Faceศ›i clic pe โ€žFinalizareโ€ pentru a finaliza instalarea ศ™i va fi afiศ™atฤƒ o fereastrฤƒ de comandฤƒ prezentatฤƒ รฎn figura de mai jos.

Descฤƒrcaศ›i ศ™i instalaศ›i Ruby pe Windows

Pas 6) Instaleazฤƒ MSYS2
Acest pas instaleazฤƒ MSYS2, o platformฤƒ de construcศ›ie care include un manager de pachete pentru o instalare uศ™oarฤƒ a pachetelor Windows.

Apฤƒsaศ›i Enter pentru a instala toate componentele, deoarece toate sunt necesare pentru a avea un mediu de dezvoltare fluid Ruby on Rails cu care sฤƒ lucraศ›i Windows.

Descฤƒrcaศ›i ศ™i instalaศ›i Ruby pe Windows

Instalarea ศ™inelor

Ar trebui sฤƒ aveศ›i Ruby instalat din secศ›iunea anterioarฤƒ, iar acum veศ›i instala Rails. Puteศ›i instala Rails folosind un pachet de la RailsInstaller, dar problema cu aceasta este cฤƒ nu obศ›ineศ›i cea mai recentฤƒ versiune a pachetelor necesare.

Dacฤƒ aveศ›i deja cel mai recent Ruby ศ™i un set de bazฤƒ de RubyGems ศ™i extensii necesare instalate. Tot ce trebuie sฤƒ faceศ›i acum este sฤƒ rulaศ›i urmฤƒtoarea comandฤƒ la promptul de comandฤƒ pentru a obศ›ine Rails pe sistemul dvs.: โ€žgem install railsโ€.

De asemenea, va trebui sฤƒ instalaศ›i Node.js dacฤƒ nu รฎl aveศ›i deja, deoarece unele biblioteci de care depinde Rails necesitฤƒ a Javascript runtime pentru a funcศ›iona corect. Puteศ›i obศ›ine nodul la https://nodejs.org.

Este o abordare mai comunฤƒ ศ™i preferatฤƒ de dezvoltare Windows. Comunitatea Rails foloseศ™te a Windows Subsistem pentru Linux care oferฤƒ un mediu GNU/Linux cu instrumente de linie de comandฤƒ, utilitฤƒศ›i ศ™i aplicaศ›ii comune direct pe Windows.

Instalarea Ruby pe Mac

Mac-ul tฤƒu are deja Ruby preinstalat pe el. Cu toate acestea, versiunea preinstalatฤƒ ar putea fi veche ศ™i, prin urmare, va trebui sฤƒ instalaศ›i o versiune nouฤƒ/cea mai recentฤƒ.

Cel mai simplu mod de a face acest lucru este folosirea unui manager de pachete, cum ar fi Homebrew. Este posibil sฤƒ trebuiascฤƒ mai รฎntรขi sฤƒ instalaศ›i Homebrew rulรขnd comanda de mai jos la terminal.

/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)

Aceasta va afiศ™a un avertisment ศ™i vฤƒ va cere sฤƒ introduceศ›i parola. Introduceศ›i parola Mac (nu veศ›i vedea caracterele pe mฤƒsurฤƒ ce introduceศ›i). Doar apฤƒsaศ›i โ€žEnterโ€ cรขnd aศ›i terminat de tastat parola. Apoi rulaศ›i aceastฤƒ comandฤƒ Homebrew simplฤƒ pentru a instala Ruby pe Mac.

brew install ruby

ศ˜i, de asemenea, rulaศ›i aceastฤƒ comandฤƒ:

echo "export PATH="/usr/local/bin:/usr/local/sbin:$PATH >> ~/.bash_profile

Pentru a seta aceastฤƒ instalare Ruby ca Ruby implicit pentru a rula pe sistemul dvs. ศ™i nu Ruby preinstalat.

Pentru a confirma cฤƒ instalarea a avut succes, puteศ›i rula urmฤƒtoarele la Terminal

ruby --version

aceasta va imprima numฤƒrul versiunii Ruby pe care l-aศ›i instalat. Ieศ™irea va arฤƒta ceva de genul

ruby 2.6.0p0 (2018-12-25 revision 66547) [x86_64-darwin18]

Instalarea Ruby pe Ubuntu (Linux)

Cel mai simplu mod de a instala Ruby pe dvs Ubuntu sistemul este prin managerul de pachete apt. Trebuie sฤƒ rulaศ›i urmฤƒtoarele comenzi la Terminal pentru a instala cel mai recent Ruby de la Ubuntu arhive.

  • actualizare sudo apt โ€“ Aceasta va actualiza valoarea implicitฤƒ Ubuntu arhive
  • sudo apt install ruby-full โ€“ Acesta va descฤƒrca ศ™i va instala cel mai recent Ruby

Pentru a confirma cฤƒ instalarea a avut succes, puteศ›i rula urmฤƒtoarele โ€žversiunea rubinโ€, aceasta va imprima versiunea Ruby pe care aศ›i instalat-o.

Instalarea ศ™inelor pe Ubuntu (Linux)

Ar trebui sฤƒ urmaศ›i paศ™ii de mai jos pentru a instala cu succes Rails pe computerul dvs. Linux.

Pas 1) Actualizaศ›i managerul de pietre preศ›ioase pe computer rulรขnd โ€žsistem de actualizare a gemeiโ€ la Terminal sau promptul de comandฤƒ.

Pas 2) Alerga โ€žศ™ine de instalare a pietreiโ€ pentru a instala cea mai recentฤƒ versiune de Rails pe computer.

Pas 3) Ar trebui sฤƒ instalaศ›i bundler gem pentru gestionarea uศ™oarฤƒ a dependenศ›ei de gem aplicaศ›ia Rails. Alerga โ€žbundler de instalare de pietre preศ›ioaseโ€ sฤƒ-l.

Douฤƒ principii ale ศ™inelor

ศ˜inele urmeazฤƒ principiile de bazฤƒ de proiectare a software-ului ศ™i vฤƒ รฎncurajeazฤƒ sฤƒ utilizaศ›i ศ™i acele principii.

Cele mai frecvente douฤƒ sunt:

  • Nu vฤƒ repetaศ›i (DRY) โ€“ acest lucru vฤƒ face sฤƒ scrieศ›i cod concis, consecvent ศ™i care poate fi รฎntreศ›inut.
  • Convenศ›ie asupra configuraศ›iei โ€“ Rails este pre-configurat pentru a utiliza valori implicite sensibile care se potrivesc celei mai frecvente utilizฤƒri. Acest lucru face ca dezvoltarea aplicaศ›iei dvs. sฤƒ fie rapidฤƒ ศ™i, de asemenea, aveศ›i mai puศ›in cod de รฎntreศ›inut.

Sine โ€“ Structuri de fiศ™iere de proiect

Cu Rails instalat acum pe sistemul dvs., vฤƒ permitem sฤƒ creaศ›i o aplicaศ›ie Rails! Vom รฎnvฤƒศ›a exemple Ruby on Rails ศ™i cum sฤƒ creaศ›i o aplicaศ›ie Lista de activitฤƒศ›i รฎn acest tutorial Ruby on Rails. Rulaศ›i urmฤƒtoarea comandฤƒ โ€žsine noua aplicaศ›ie todo_appโ€ รฎn terminalul dvs. pentru a crea aplicaศ›ia.

Aceastฤƒ comandฤƒ creeazฤƒ un director numit โ€žtodo_appโ€ รฎn directorul curent cu structura de bazฤƒ de foldere a unei aplicaศ›ii web Rails, aศ™a cum se aratฤƒ รฎn figura de mai jos:

Sine โ€“ Structuri de fiศ™iere de proiect

Veศ›i parcurge directoarele principale din acest exemplu Ruby on Rails.

aplicaลฃia โ€“ Acest director grupeazฤƒ folosind diferite subdirectoare pentru UI/aspect (vizualizฤƒri ศ™i ajutoare), controler (fiศ™iere controlere) ศ™i modele (logica de afaceri/aplicaศ›ie).

aplicaศ›ie/controlere โ€“ Acest director stocheazฤƒ fiศ™ierele controler utilizate de Rails pentru a gestiona cererile de la client.

aplicaศ›ie/active โ€“ Conศ›ine fiศ™iere statice, ceea ce este o nevoie pentru front-end-ul aplicaศ›iei grupate รฎn foldere รฎn funcศ›ie de tipul lor โ€“ JavaScenariu fiศ™iere, imagini ศ™i foi de stil.

aplicaศ›ie/ajutoare โ€“ Acest subdirector conศ›ine funcศ›ii de ajutor care fac modelul aplicaศ›iei, vizualizarea ศ™i logica controlerului sฤƒ fie concentrate, mici ศ™i neaglomerate.

aplicaศ›ie/modele โ€“ Acesta conศ›ine fiศ™iere

care modeleazฤƒ baza de date a aplicaศ›iei dvs. Clasele model faciliteazฤƒ foarte mult lucrul cu baza de date.

aplicaศ›ie/vizualizฤƒri โ€“ Aceste fiศ™iere ศ™ablon/aspect de reศ›inere cu care interacศ›ioneazฤƒ utilizatorul aplicaศ›iei dvs. ศ˜abloanele sunt o combinaศ›ie de HTML ศ™i date din baza de date.

cos - Conศ›ine scripturi Rails care porneศ™te aplicaศ›ia. De asemenea, poate include ศ™i alte scripturi pe care le utilizaศ›i pentru a configura ศ™i actualiza aplicaศ›ia.

Configurare - Acesta deศ›ine fiศ™ierele de configurare - baza de date.yml, mediu.rb, rute.rb, etc. pe care aplicaศ›ia dvs. trebuie sฤƒ ruleze.

DB โ€“ Acest director conศ›ine fiศ™iere/script-uri care sunt utilizate pentru a gestiona baza de date a aplicaศ›iei.

lib โ€“ Acest director conศ›ine un modul extins pentru aplicaศ›ia dvs.

Buturuga - Acesta conศ›ine fiศ™iere jurnal โ€“ server.log, development.log, test.log ศ™i production.log, etc., care sunt utilizate pentru depanarea sau monitorizarea aplicaศ›iei dvs.

public - Acest director conศ›ine fiศ™iere statice ศ™i materiale compilate, cum ar fi fiศ™iere HTML, Javascript fiศ™iere, imagini ศ™i foi de stil.

Test - Acest director conศ›ine fiศ™iere de testare pe care le scrieศ›i pentru a testa funcศ›ionalitatea aplicaศ›iei.

tmp - Acest director conศ›ine fiศ™iere temporare precum fiศ™ierele cache ศ™i pid.

vรขnzฤƒtor โ€“ Acest director conศ›ine biblioteci terศ›ฤƒ parte.

Gemfile โ€“ Acest fiศ™ier specificฤƒ care sunt cerinศ›ele tale de bazฤƒ pentru bijuteriile pentru a rula aplicaศ›ia web. Puteศ›i grupa pietrele รฎn dezvoltare, testare sau producศ›ie, iar Rails va ศ™ti cรขnd sฤƒ includฤƒ fiecare bijuterie.

Gemfile.lock โ€“ Spre deosebire de Gemfile care listeazฤƒ รฎn mod explicit pietrele preศ›ioase pe care le doriศ›i รฎn aplicaศ›ia dvs., Gemfile.lock conศ›ine รฎn plus ศ™i alte pietre preศ›ioase de care depind cele pe care le enumeraศ›i รฎn Gemfile ศ™i care sunt apoi instalate automat pentru a satisface dependenศ›ele.

Readme.md โ€“ Utilizaศ›i acest fiศ™ier pentru a partaja detalii esenศ›iale despre aplicaศ›ia dvs., cum ar fi ceea ce face aplicaศ›ia, cum sฤƒ instalaศ›i ศ™i sฤƒ rulaศ›i aplicaศ›ia.

Rakefile โ€“ Acest fiศ™ier conศ›ine diverse definiศ›ii de sarcini rake, care ajutฤƒ la automatizarea sarcinilor de administrare de zi cu zi ale aplicaศ›iei dvs.

config.ru โ€“ Acesta este un fiศ™ier de configurare Rack care oferฤƒ o interfaศ›ฤƒ serverului web pentru a porni aplicaศ›ia.

Schimbaศ›i directorul รฎn โ€žtodo_appโ€ directorul Rails generat ศ™i rulat โ€žserver ศ™ineโ€ pentru a porni aplicaศ›ia. Tip localhost: 3000 รฎn bara de adrese a browserului dvs. web, ar trebui sฤƒ vedeศ›i figura de mai jos dacฤƒ totul a mers bine.

Sine โ€“ Structuri de fiศ™iere de proiect

Aceasta este pagina de pornire implicitฤƒ a aplicaศ›iei dvs. ศ™i o veศ›i schimba รฎn secศ›iunea ulterioarฤƒ a acestui tutorial Ruby on Rails. Puteศ›i opri serverul apฤƒsรขnd โ€žCtrl-Cโ€.

Rails โ€“ Generaศ›i comenzi

Comanda Rails generate foloseศ™te ศ™abloane pentru a crea o mulศ›ime de lucruri utile รฎn aplicaศ›ia dvs. Puteศ›i folosi aceste generatoare pentru a economisi mult timp.

Ajutฤƒ prin scrierea codului standard, cod care este necesar pentru ca aplicaศ›ia dvs. web sฤƒ funcศ›ioneze. Poศ›i sฤƒ alergi "ศ™ine genereazฤƒ" singur la promptul de comandฤƒ sau la Terminal pentru a vedea o listฤƒ de generatoare disponibile, dupฤƒ cum se aratฤƒ mai jos:

Rails โ€“ Generaศ›i comenzi

De asemenea, puteศ›i rula โ€žศ™inele genereazฤƒ โ€žcomandฤƒโ€โ€ pentru a vedea o descriere a ceea ce face comanda. Oferฤƒ opศ›iuni convenabile care pot fi rulate cu exemplul de comandฤƒ ศ™i utilizare. Figura de mai jos aratฤƒ rezultatul rulฤƒrii"ศ™inele genereazฤƒ controler":

Rails โ€“ Generaศ›i comenzi

Veศ›i folosi comanda rails generate scaffold pentru a crea automat modelul, vizualizarea ศ™i controlerul pentru aplicaศ›ia pe care o construiศ›i. Alerga' ศ™inele genereazฤƒ schele todo_list title:string description: text' รฎn terminalul dvs. (verificaศ›i cฤƒ sunteศ›i รฎncฤƒ รฎn directorul todo_app).

Aceasta va crea o interfaศ›ฤƒ web completฤƒ CRUD (Creare, citire, actualizare ศ™i ศ™tergere) pentru tabelul TodoLists.

O altฤƒ comandฤƒ utilฤƒ de ศ™tiut este โ€žศ™inele distrugโ€, inverseazฤƒ orice โ€žศ™inele genereazฤƒโ€ฆโ€ nu.

ศ˜ine โ€“ trasare

Sistemul de rutare Rails, routerul ศ™ine, gestioneazฤƒ toate solicitฤƒrile primite cฤƒtre aplicaศ›ia dvs. web. Face acest lucru examinรขnd adresa URL a cererilor primite ศ™i apoi mapeazฤƒ fiecare cerere la acศ›iunea controlerului responsabilฤƒ cu gestionarea acesteia, folosind sintaxa specialฤƒ specificatฤƒ รฎn fiศ™ierul rute (config/rute.rb).

Fiศ™ierul rute ajutฤƒ la controlul fiecฤƒrui aspect URL al aplicaศ›iei dvs. web. Rails utilizeazฤƒ รฎn mod implicit un design RESTful bazat pe stilul arhitectural REST, care oferฤƒ o mapare รฎntre verbele HTTP ศ™i solicitฤƒrile (URL-uri) la acศ›iunile controlerului.

Fiศ™ierul rute a fost generat cรขnd aศ›i rulat "ศ™ine noi" รฎntr-o secศ›iune anterioarฤƒ a acestui tutorial. Continuรขnd cu aplicaศ›ia Todo pe care o construiศ›i, rulaศ›i urmฤƒtoarele' ศ™ine db:migrate' (vei afla ce face asta รฎn curรขnd)

รŽn linia de comandฤƒ, asiguraศ›i-vฤƒ cฤƒ sunteศ›i รฎncฤƒ la rฤƒdฤƒcina aplicaศ›iei (directorul todo_app).

Apoi porniศ›i din nou serverul cu โ€žserver ศ™ineโ€. Tip http://localhost:3000/todo_lists/ รฎn browser ศ™i apฤƒsaศ›i Enter. Ar trebui sฤƒ primiศ›i รฎnapoi o paginฤƒ web, aศ™a cum se aratฤƒ รฎn figura de mai jos a exemplului Ruby on Rails:

Sine โ€“ Trasare

Aceasta este vizualizarea Listelor de activitฤƒศ›i generatฤƒ de comanda scaffold ศ™i este controlatฤƒ de acศ›iunea de index a lui TodoListsController.

Continuaศ›i ศ™i adฤƒugaศ›i o listฤƒ de lucruri fฤƒcรขnd clic pe โ€žNew To Listโ€ de pe paginฤƒ, ar trebui sฤƒ obศ›ineศ›i pagina aศ™a cum se aratฤƒ mai jos:

Sine โ€“ Trasare

Observaศ›i cฤƒ adresa URL este schimbatฤƒ รฎn http://localhost:3000/todo_lists/new. Aceasta este pagina pentru a crea o nouฤƒ listฤƒ de lucruri ศ™i este controlatฤƒ de noua metodฤƒ/acศ›iune a TodoListsController.

Introduceศ›i titlul ศ™i descrierea listei dvs. de activitฤƒศ›i รฎn formular ศ™i faceศ›i clic pe butonul Creaศ›i lista de activitฤƒศ›i, adresa URL ar trebui sฤƒ se schimbe รฎn http://localhost:3000/todo_lists/1, prezentat รฎn figura de mai jos a exemplului de cod Ruby on Rails:

Sine โ€“ Trasare

Aceasta este pagina de afiศ™are a unei liste de activitฤƒศ›i ศ™i este controlatฤƒ de metoda/acศ›iunea de afiศ™are a lui TodoListsController. Dacฤƒ te รฎntorci la http://localhost:3000/todo_lists/, ar trebui sฤƒ vedeศ›i acum figura de mai jos cu o nouฤƒ listฤƒ de lucruri adฤƒugate:

Sine โ€“ Trasare

Rails a reuศ™it sฤƒ mapeze diferitele solicitฤƒri (URL-uri) la acศ›iunea corespunzฤƒtoare a TodoListsController folosind definiศ›ia rutei din config/routes.rb.

Dacฤƒ aruncaศ›i o privire la acest fiศ™ier, vedeศ›i o singurฤƒ linie โ€žresurse: todo_listsโ€, este modalitatea implicitฤƒ Rails de a scrie rute odihnitoare. Aceastฤƒ singurฤƒ linie creeazฤƒ ศ™apte rute, toate mapate cฤƒtre controlerul TodoLists.

Prin convenศ›ie, acศ›iunea fiecฤƒrui controler se mapeazฤƒ ศ™i la o anumitฤƒ operaศ›ie CRUD (Creare, Read, Update, and Delete) din baza de date.

Poศ›i alerga "rute de grebla" รฎn linia de comandฤƒ pentru a vedea diferitele rute disponibile รฎn aplicaศ›ia dvs. Figura de mai jos aratฤƒ rezultatul rulฤƒrii "rute ferate" รฎn linia/terminalul dumneavoastrฤƒ de comandฤƒ.

Sine โ€“ Trasare

Sine โ€“ vederi

Stratul View este una dintre componentele paradigmei MVC ศ™i este responsabil pentru generarea de rฤƒspuns HTML pentru fiecare solicitare cฤƒtre aplicaศ›ia dvs. Rails utilizeazฤƒ implicit ERB (Embedded Ruby), care este un sistem puternic de ศ™abloane pentru Ruby.

ERB face ศ™abloanele de scriere uศ™or ศ™i uศ™or de รฎntreศ›inut prin combinarea textului simplu cu codul Ruby pentru รฎnlocuirea variabilelor ศ™i controlul fluxului. Un ศ™ablon ERB are extensia .html, .erb sau .erb.

รŽn mare parte, veศ›i folosi doar o combinaศ›ie de doi markeri de etichetฤƒ, fiecare dintre acestea determinรขnd ca codul รฎncorporat sฤƒ fie procesat ศ™i gestionat รฎntr-un anumit mod.

O etichetฤƒ cu semnul egalului โ€ž<%= %>โ€ indicฤƒ faptul cฤƒ codul รฎncorporat este o expresie ศ™i cฤƒ rezultatul codului ar trebui sฤƒ fie รฎnlocuit de renderer atunci cรขnd redฤƒ ศ™ablonul.

Cealaltฤƒ etichetฤƒ fฤƒrฤƒ semn de egalitate โ€ž<% %>โ€ indicฤƒ operatorului de redare cฤƒ rezultatul codului nu trebuie รฎnlocuit/tipฤƒrit atunci cรขnd redฤƒ ศ™ablonul.

Fiecare controler din aplicaศ›ia dumneavoastrฤƒ Rails are un subdirector corespunzฤƒtor รฎn aplicaศ›ie/vizualizฤƒri, iar fiecare acศ›iune/metodฤƒ dintr-un controler are un fiศ™ier .html ศ™i .erb corespunzฤƒtor รฎn acest director.

Aruncฤƒ o privire la aplicaศ›ia/vizualizฤƒrile aplicaศ›iei todo pe care o construieศ™ti. Veศ›i gฤƒsi un subdirector numit โ€žliste de totโ€ รฎn interiorul acestui subdirector .html.erb fiศ™iere cu nume corespunzฤƒtoare acศ›iunilor/metodelor din TodoLists controler.

ศ˜ine โ€“ ActiveRecord, Active Record Pattern ศ™i ORM

ActiveRecord este implementarea Ruby a modelului Active Record, care este un model simplu รฎn care o clasฤƒ reprezintฤƒ un tabel, iar o instanศ›ฤƒ a clasei reprezintฤƒ un rรขnd รฎn acea clasฤƒ.

ActiveRecord este denumit รฎn mod popular ORM (Object Relational Mapping), o tehnicฤƒ care vฤƒ permite sฤƒ vฤƒ gestionaศ›i baza de date folosind o limbฤƒ cu care vฤƒ simศ›iศ›i cel mai confortabil. Este independent de baze de date, astfel รฎncรขt puteศ›i comuta cu uศ™urinศ›ฤƒ รฎntre baze de date (de exemplu SQLite, MySQL, PostgreSQL, SQL Server, Oracle, etc.). Aceastฤƒ suitฤƒ este mai potrivitฤƒ pentru cerinศ›ele aplicaศ›iei dvs. cu acelaศ™i cod/logicฤƒ.

Deci, dacฤƒ doriศ›i sฤƒ obศ›ineศ›i o matrice care sฤƒ conศ›inฤƒ o listฤƒ a tuturor listelor de lucruri din aplicaศ›ia dvs., deci, รฎn loc sฤƒ scrieศ›i cod pentru a iniศ›ia o conexiune la baza de date, faceศ›i un fel de interogare SQL SELECT ศ™i convertiศ›i acele rezultate รฎntr-o matrice.

Pentru asta, trebuie doar sฤƒ tastaศ›i โ€žTodoList.allโ€ iar Active Record vฤƒ oferฤƒ matricea plinฤƒ cu obiecte TodoList cu care vฤƒ puteศ›i juca dupฤƒ cum doriศ›i.

Tot ce trebuie sฤƒ faceศ›i este sฤƒ configuraศ›i configuraศ›ia corectฤƒ config/database.yml, iar Active Record va rezolva toate diferenศ›ele dintre diferitele sisteme de baze de date. Aศ™a cฤƒ atunci cรขnd treci de la unul la altul, nu trebuie sฤƒ te gรขndeศ™ti la asta.

Vฤƒ concentraศ›i pe scrierea codului pentru aplicaศ›ia dvs., iar Active Record se va gรขndi la detaliile de nivel scฤƒzut ale conectฤƒrii dvs. la baza de date. Active Record foloseศ™te convenศ›iile de denumire pentru a crea maparea dintre modele ศ™i tabelele bazei de date.

Rails pluralizeazฤƒ numele claselor modelului pentru a gฤƒsi tabelul corespunzฤƒtor al bazei de date. Deci, pentru o clasฤƒ TodoList, ActiveRecord va crea un tabel de bazฤƒ de date numit TodoLists.

Sine โ€“ Migraศ›ii

Migrarea ศ™inelor este pur ศ™i simplu un script pe care รฎl utilizaศ›i pentru a edita baza de date a aplicaศ›iei. Este folosit pentru a configura sau modifica baza de date ศ™i evitฤƒ scrierea manualฤƒ a codului SQL pentru a face asta.

Foloseศ™te Ruby pentru a defini modificฤƒrile la schema bazei de date ศ™i face posibilฤƒ utilizarea controlului versiunilor pentru a menศ›ine baza de date sincronizatฤƒ.

Rails Migrations utilizeazฤƒ un Ruby Domain Specific Language (DSL). Aceasta acศ›ioneazฤƒ ca o abstractizare ศ™i face posibilฤƒ utilizarea sau modificarea motorului bazei de date รฎn funcศ›ie de cerinศ›ele dumneavoastrฤƒ.

Acestea pot fi partajate cu oricine lucreazฤƒ la aplicaศ›ie ศ™i pot fi, de asemenea, anulate pentru a anula orice modificฤƒri aduse bazei de date. Acesta este un mecanism de รฎnaltฤƒ siguranศ›ฤƒ, deoarece nu trebuie sฤƒ vฤƒ deranjaศ›i sฤƒ faceศ›i daune permanente bazei de date.

Rails โ€“ Asociaศ›ii ActiveRecord

O conexiune รฎntre douฤƒ modele ActiveRecord este cunoscutฤƒ ca o asociere. Asocierea face mult mai uศ™oarฤƒ efectuarea de operaศ›iuni asupra diferitelor รฎnregistrฤƒri din codul dvs. Poate fi รฎmpฤƒrศ›it รฎn patru categorii: -

Unu la unu: โ€“ Aceasta indicฤƒ faptul cฤƒ o รฎnregistrare conศ›ine exact o instanศ›ฤƒ a altui model. Un bun exemplu este profilul utilizatorului. Un utilizator are un singur profil. Foloseศ™te are unul cuvinte cheie.

De la unul la mulศ›i: โ€“ Aceasta este cea mai comunฤƒ asociere ศ™i indicฤƒ faptul cฤƒ un model are zero sau mai multe instanศ›e ale altui model. Utilizarea ta are un _multe cuvรขnt cheie pentru a desemna aceastฤƒ asociere.

Multe la Multe: โ€“ Aceastฤƒ asociere este puศ›in mai complicatฤƒ, iar ActiveRecord oferฤƒ douฤƒ moduri de a o gestiona. Folosind are_ศ™i_aparศ›ine_mulศ›i ศ™i are multe, care vฤƒ oferฤƒ acces la relaศ›ia care este definitฤƒ รฎntr-un tabel separat.

Polimorfe Unu la Multi:- Aceasta este o asociere mai avansatฤƒ disponibilฤƒ pentru tine รฎn Rails. รŽl puteศ›i folosi pentru a defini un model care poate aparศ›ine mai multor modele diferite รฎntr-o singurฤƒ asociere.

Rails โ€“ Validฤƒri ActiveRecord

Validarea vฤƒ ajutฤƒ sฤƒ vฤƒ asiguraศ›i cฤƒ aveศ›i date corecte, deoarece lucrul cu date greศ™ite este un lucru รฎngrozitor ศ™i vฤƒ poate costa banii ศ™i afacerea.

Validarea oferฤƒ, de asemenea, un nivel suplimentar de securitate pentru aplicaศ›ia dvs. รฎmpotriva utilizatorilor rฤƒu intenศ›ionaศ›i prin obศ›inerea accesului la informaศ›iile din baza de date. Rails vฤƒ oferฤƒ un API frumos de ajutoare de validare รฎn ActiveRecord pentru a vฤƒ menศ›ine baza de date curatฤƒ, sigurฤƒ ศ™i fฤƒrฤƒ erori.

Validฤƒrile ActiveRecord ruleazฤƒ pe obiectele model รฎnainte de salvarea รฎn baza de date, fฤƒcรขndu-le mai fiabile ศ™i, de asemenea, cele mai bune practici de urmat รฎn construirea aplicaศ›iei.

Urmฤƒtoarele metode ActiveRecord evocฤƒ validฤƒri atunci cรขnd sunt utilizate sau apelate pe obiecte model โ€“ creaศ›i, creaศ›i!, salvaศ›i, salvaศ›i!, actualizaศ›i ศ™i actualizaศ›i!. Cei cu breton (creeazฤƒ!, salveazฤƒ! ศ™i actualizaศ›i!) ridicฤƒ o excepศ›ie dacฤƒ o รฎnregistrare este invalidฤƒ รฎn timp ce nu.

Cei mai obiศ™nuiศ›i ajutoare de validare ActiveRecord la dispoziศ›ia dumneavoastrฤƒ sunt: โ€‹โ€‹-

Confirmare:โ€“ Acest ajutor de validare este util pentru validarea a douฤƒ cรขmpuri care au aceeaศ™i intrare. de exemplu, parola ศ™i confirmarea parolei, este utilizatฤƒ รฎmpreunฤƒ cu ajutorul de validare a prezenศ›ei.

Prezenลฃฤƒ:โ€“ Se verificฤƒ dacฤƒ cรขmpul nu este gol.

unicitate: asigurฤƒ o valoare unicฤƒ pentru un cรขmp, de exemplu, numele de utilizator

Lungime:- Pentru a impune o limitฤƒ a lungimii caracterelor unui cรขmp

De asemenea, puteศ›i crea validarea personalizatฤƒ utilizรขnd metoda de validare ศ™i transmiศ›รขndu-i numele metodei de validare personalizatฤƒ.

Puteศ›i verifica modelul eroare obiect pentru a afla de ce o validare. Sperฤƒm cฤƒ aveศ›i cรขteva idei pentru a face aplicaศ›ia dvs. mai restrรขnsฤƒ ศ™i mai securizatฤƒ pentru a permite numai date securizate รฎn baza de date.

Sine โ€“ ActionController

Controlerul Rails este centrul aplicaศ›iei dvs. web. Faciliteazฤƒ ศ™i coordoneazฤƒ comunicarea dintre utilizator, modele ศ™i vederi.

Clasele dvs. de controlere moศ™tenesc de la ApplicationController, care conศ›ine cod care poate fi rulat รฎn toate celelalte controlere ศ™i moศ™teneศ™te din clasa ActionController.

Controlerul oferฤƒ urmฤƒtoarele aplicaศ›ii:

  • Acesta direcศ›ioneazฤƒ solicitฤƒrile externe cฤƒtre acศ›iunile interne
  • Reuศ™eศ™te sฤƒ pฤƒstreze รฎn cache, oferind creศ™teri de performanศ›ฤƒ aplicaศ›iei dvs
  • Gestioneazฤƒ metode de ajutor care extind capacitฤƒศ›ile ศ™abloanelor de vizualizare. De asemenea, gestioneazฤƒ sesiunile utilizatorilor, oferindu-le o experienศ›ฤƒ uศ™oarฤƒ รฎn utilizarea aplicaศ›iei dvs.

ศ˜ine โ€“ Configuraศ›ii

Puteศ›i configura diferitele componente, cum ar fi iniศ›ializatoare, active, generatoare, middleware, etc. Utilizรขnd iniศ›ializatorii aplicaศ›iei Rails ศ™i fiศ™ierele de configurare din directorul de configurare. Fiศ™iere precum config/application.rb, config/environments/development.rb ศ™i config/environments/test.rb etc. De asemenea, puteศ›i configura setฤƒri personalizate pentru aplicaศ›ia dvs.

Sine โ€“ Depanare

Pe mฤƒsurฤƒ ce vฤƒ construiศ›i aplicaศ›ia, va veni un moment รฎn care va trebui/va trebui sฤƒ vฤƒ depanaศ›i codul. ศ˜inele fac acest lucru uศ™or folosind bijuteria byebug. Puteศ›i รฎncepe o sesiune de depanare punรขnd cuvรขntul cheie โ€žbyebegโ€ oriunde รฎn codul aplicaศ›iei.

Acest lucru va opri temporar execuศ›ia รฎn acel moment. Bijuteria byebug vฤƒ oferฤƒ mai multe comenzi de utilizat. Cele mai utile sunt:

  • urmฤƒtor: comandฤƒ care vฤƒ permite sฤƒ mergeศ›i la urmฤƒtoarea linie de cod, sฤƒrind peste toate metodele invocate de execuศ›ia liniei curente.
  • pas: aceasta este similarฤƒ cu comanda โ€žnextโ€, dar vฤƒ va face sฤƒ pฤƒศ™iศ›i รฎn fiecare invocat.
  • rupe: aceasta opreศ™te execuศ›ia codului.
  • continua continuฤƒ codul de execuศ›ie.

Existฤƒ ศ™i alte pietre preศ›ioase de depanare, cum ar fi โ€žpryโ€, ศ™i toate oferฤƒ funcศ›ionalitฤƒศ›i similare, dar o sintaxฤƒ uศ™or diferitฤƒ. Pietrele preศ›ioase de depanare nu ar trebui utilizate รฎn producศ›ie, deoarece acest lucru prezintฤƒ riscuri pentru aplicaศ›ia dvs. ศ™i experienศ›ฤƒ proastฤƒ pentru utilizatorii aplicaศ›iei dvs.

Existฤƒ fiศ™iere jurnal pe care le puteศ›i inspecta pentru erori รฎn producศ›ie ศ™i le puteศ›i gestiona. De asemenea, ar trebui sฤƒ urmaศ›i o abordare TDD (dezvoltare bazatฤƒ pe teste) atunci cรขnd vฤƒ dezvoltaศ›i aplicaศ›ia, pentru a vฤƒ asigura cฤƒ totul funcศ›ioneazฤƒ bine รฎnainte de implementarea รฎn producศ›ie.

Rezumat

  • Ruby este un limbaj de programare pur orientat pe obiecte
  • Ruby are o sintaxฤƒ elegantฤƒ, uศ™or de citit ศ™i de scris.
  • Rails este un cadru de dezvoltare, scris รฎn Ruby, pentru construirea de aplicaศ›ii web
  • Procesul de instalare va depinde de sistemul dvs. de operare.
  • Rails este ambalat ca o bijuterie Ruby ศ™i รฎl puteศ›i folosi pentru a construi o varietate de aplicaศ›ii.
  • Veศ›i crea o aplicaศ›ie Lista de activitฤƒศ›i รฎn acest tutorial, rulaศ›i followincomm'n'n' 'rails netoda'p'p'p' รฎn terminalul dvs. pentru a crea aplicaศ›ia.
  • Comanda Rails generate foloseศ™te ศ™abloane pentru a crea o mulศ›ime de lucruri utile รฎn aplicaศ›ia dvs.
  • Sistemul de rutare Rails, routerul ศ™ine vฤƒ ajutฤƒ sฤƒ gestionaศ›i toate solicitฤƒrile primite cฤƒtre aplicaศ›ia dvs. web.
  • Stratul View este una dintre componentele paradigmei MVC ศ™i este responsabil pentru generarea de rฤƒspuns HTML pentru fiecare solicitare cฤƒtre aplicaศ›ia dvs.
  • ActiveRecord este implementarea Ruby a modelului Active Record.
  • Migrarea ศ™inelor este pur ศ™i simplu un script pe care รฎl utilizaศ›i pentru a edita baza de date a aplicaศ›iei.
  • O conexiune รฎntre douฤƒ modele ActiveRecord este cunoscutฤƒ ca o asociere.
  • Validarea vฤƒ ajutฤƒ sฤƒ vฤƒ asiguraศ›i cฤƒ aveศ›i date corecte, deoarece lucrul cu date greศ™ite este un lucru รฎngrozitor ศ™i vฤƒ poate costa banii ศ™i afacerea.
  • Controlerul Rails vฤƒ ajutฤƒ sฤƒ facilitaศ›i ศ™i sฤƒ coordonaศ›i comunicarea dintre utilizator, modele ศ™i vederi.
  • Rail vฤƒ ajutฤƒ sฤƒ configuraศ›i diferitele componente, cum ar fi iniศ›ializatoare, active, generatoare, middleware etc.

Rezumaศ›i aceastฤƒ postare cu: